Review Request: Don't lose the original CMAKE_MODULE_PATH
Patrick Spendrin
ps_ml at gmx.de
Wed Aug 8 21:54:21 UTC 2012
Am 08.08.2012 22:52, schrieb Alexander Neundorf:
> On Tuesday 07 August 2012, Patrick Spendrin wrote:
>
>> Am 07.08.2012 22:42, schrieb Alexander Neundorf:
>
> ...
>
>> > Setting CMAKE_REQUIRED_INCLUDES and CMAKE_REQUIRED_LIBRARIES within the
>
>> > Config.cmake file is not good style.
>
>> >
>
>> > Finding a package should not change the behaviour of cmake, just provide
>
>> > information about the package which has been found. So I'd prefer to
>
>> > remove lines 26 and 27.
>
>>
>
>> Since kdewin is a special library (a compatibility layer) I would like
>
>> to keep that in place. Otherwise I would have to set this in each and
>
>> every dependent package. The code has been copied over from the old
>
>> FindKDEWin.cmake, and I think that the behaviour should not be changed
>
>> here.
>
> Strictly speaking, from the CMake POV, this is wrong.
>
> Doing
>
> find_package(KDEWin)
>
> should not change any current build settings, but only provide
> information about the installed project.
>
> A user has to do anyway
>
> find_package(KDEWin)
>
> so it shouldn't be a big problem to do the following:
>
> find_package(KDEWin)
>
> set(CMAKE_REQUIRED_INCLUDES ${KDEWIN_INCLUDES} )
>
> set(CMAKE_REQUIRED_LIBRARIES ${KDEWIN_LIBRARIES} )
>
> This would be the clean way.
>
> If there is a chance to break compatibility, this is now with the switch
> to KF5/e-c-m.
>
> I'm strongly in favor of this.
>
> I know that
>
> find_package(KDE4)
>
> does not follow this rule.
>
> This was not a good decision, but we had to stay with it to keep source
> compatibility. And it is more convenient for our KDE developers, but it
> is not how cmake stuff should behave.
>
> With KF5 this changes somewhat. If you do
>
> find_package(KF5)
>
> no settings will be modified, you have to request that explicitely:
>
> find_package(KF5 COMPONENT CMake Compiler)
>
> By requesting the components "CMake" and "Compiler" the cmake- and
> compiler-settings suggested by KDE will be applied. So it is at least a
> somewhat explicit request by the user.
Well, kdewin has no other use case than providing additional include
headers in constrast to KDE4 and KF5.
I will change the Config.cmake file again tomorrow, although I really
hate that change as it will increase the amount of code each project has
to include, thus increasing error likeliness etc.
>
> Alex
>
regards,
Patrick
More information about the Kde-frameworks-devel
mailing list