Rough plan for extra-cmake-modules Was: extra-cmake-modules populated
Alexander Neundorf
neundorf at kde.org
Wed Jun 29 20:17:53 CEST 2011
Hi,
I guess I should explain a bit more what's behind the idea of extra-cmake-
modules.
There were two big topics at the Platform sprint in Randa: Qt5, and how to
make KDE libraries better available for Qt-only software.
Qt5 will break binary compatibility, and will try to stay 100% source
compatible (so it will be mostly source compatible).
We (KDE) can use this chance to also break binary compatibility.
The plan is to restructure the KDE libraries so that the libraries become more
focussed, with less dependencies for each individual library.
This will be binary incompatible, and we will also try to stay as source
compatible as possible (but it won't be 100%).
For the buildsystem we can use this chance to also break source compatibility
once. I think we should use this opportunity, break cmake source compatibility
and clean up our cmake stuff.
This includes upstreaming some things into cmake. CMake 2.8.5 will be released
really soon now, and 2.8.6 will be out in 3 to 4 months.
It would be nice if we could get into 2.8.6 what we want to get upstreamed
into cmake. This means we have to do this in the next three months.
Once we succeeded with this, and once cmake 2.8.6 has been released, we can
start requiring cmake 2.8.6 (i.e. in October or so).
So, what do we do with the cmake stuff we have in kdelibs ?
-some things will not be necessary anymore (e.g. MacroOptionalFindPackage)
-with Qt5 we will not use FindQt4.cmake anymore
-some stuff should be merged into cmake
-some things may simply not make it into extra-cmake-modules (e.g.
MacroAddLinkFlags, MacroEnsureVersion, others)
-all macros which will end up in extra-cmake-modules will not have the
"macro_" prefix anymore, but will get the prefix "ecm_"
So, this means e.g. that kdelibs/cmake/modules/ must not be synced with extra-
cmake-modules, since they will contain different stuff.
Once we require cmake 2.8.6, we can do an initial release of e-c-m. Then stuff
which is 100% source compatible with what we have right now in kdelibs can be
removed from kdelibs.
Then, when the switch to Qt5 comes, there will be a cmake source incompatible
break, since from then on the modules from e-c-m have to be used.
As plan I would
- go through the list from Raphael again and insert some more details
- then slowly add one file after the other, no mass commits or simply adding
new stuff
Alex
More information about the Kde-buildsystem
mailing list