frameworks build issues
Stephen Kelly
steveire at gmail.com
Tue Nov 22 14:29:25 UTC 2011
Jeremy Whiting wrote:
> Hello all,
>
> I took another crack at the kcolorscheme migration in frameworks
> branch yesterday, and got it to not depend on KGlobalSettings any
> longer. Unfortunately I still get warnings when I run cmake like
> this:
There are two issues.
For one of them I filed a bug against cmake:
http://public.kitware.com/Bug/view.php?id=12588
The second issue is that libkgui depends on kdecore, which is not a
'framework'. It's premature for libkgui to exist if it depends on kdecore.
The things that it depends on in kdecore would have to be split out.
> Should we be using separate branches to work on stuff like this and
> merge them into frameworks when they build?
I think that would just complicate things. I think what we actually need is
more structured efforts. The people who want libkgui to exist need to do
work on the lower levels before creating it. The things libkgui depends on
need to be close to their final state (in terms of build and dependencies)
before libkgui can exist. This is where we need concrete goals which will
hopefully be hammered out in the IRC meeting.
The most important thing we need right now is modularity, which we can do
better to enforce in the buildsystem. It should be possible to build things
standalone. Currently for example solid and kcoreaddons can not be built
standalone because they get config.h from the top level 'kdelibs', along
with their dependencies, and they use cmake macros that they should not
(macro_bool_to_01() is replaced by #cmakedefine01 for example), so
libkcoreaddons is not 'done' or 'ready', however you want to call it.
To be 'done' it would need to create its own config file with the stuff that
it needs, find its dependencies by using Find packages from extra-cmake-
modules, port away from the no-longer-used cmake macros such as
macro_bool_to_01 and macro_optional_find_package. This is what 'done' looks
like and is what we need to aim for for each framework.
We can enforce this by creating a 'done' folder, and calling
add_subdirectory(done) in kdelibs.git/CMakeLists.txt as early as possible.
At least *before* the call to find_package(KDE4Internal REQUIRED).
This will mean that kdelibs.git/cmake/modules will not be used anymore etc,
and mean that for a framework to work in the 'done' folder, its cmake stuff
needs to come from extra-cmake-modules.
I can create that folder soon and start moving things in there (at least
itemmodels is 'done' already).
Any objections?
Thanks,
Steve.
More information about the Kde-frameworks-devel
mailing list