Where does KAuth belong?

Stephen Kelly steveire at gmail.com
Fri Sep 16 13:46:24 BST 2011


Alexander Neundorf wrote:

>> > We shouldn't expect from all our developers that they suddenly take
>> > care of all that themselves.
>> 
>> Every KDE application I have seen has this boilerplate:
>> 
>> find_package(KDE4 REQUIRED)
>> include(KDE4Defaults)
>> include(MacroLibrary)
>> include(CheckIncludeFiles)
>> 
>> Why don't we set the flags in KDE4Defaults?
> 
> ...so you would do
> 
> find_package(kitemmodels REQUIRED)
> which sets a bunch of include dir and libs variables, and then
> 
> include(KDE4Defaults)
> which sets compilers flags etc.

Yes, 'KDE Applications' can do that. They will likely use find_package a 
bunch of more times too, or they would use find_package(kdelibs 5.0)[1] 
which internally calls find_package for all frameworks, or whatever.

Then they could use include(KDE4Defaults).

However, a 'non-kde consumer of the frameworks' would do 

find_package(kitemmodels REQUIRED)
include(${kitemmodels_USE_FILE})

kitemmodels_USE_FILE is generated by ECMQtFramework and currently does very 
little. Currently it can't be modified, but we could make it so by renaming 
it to kitemmodelsUSE_internal.cmake, and then create a kitemmodelsUSE.cmake 
which looks like:

include(kitemmodelsUSE_internal)

set(CMAKE_CXX_FLAGS ...)

in cases where the library requires that. In the case of kitemmodels I don't 
think we need to set any compiler flags. 

As a frameworks user I would be surprised if the framework set compiler 
flags automatically for me. 

As a 'KDE application' developer I can of course see the reasoning, and of 
course agree that it should do that.

> 
> I think this sounds quite good.

Yes, I agree.

> We could also rename that file to UseKDE4.cmake, so it is similar to
> UseQt4.cmake.
> 

Yes, I agree.

> Still, where will the file KDE4Defaults.cmake (or UseKDE4.cmake) be
> located ?

I'd put it wherever KApplication goes and install it from there.

I'd also recommend creating and installing a kdelibsTargets file which 
includes the targets for all relevant frameworks. 

All the best,

Steve.






More information about the kde-core-devel mailing list