Development/CMake KDE 4 5

    From KDE TechBase
    Revision as of 19:35, 15 August 2010 by Neundorf (talk | contribs)

    Changes in the buildsystem from KDE 4.4 to KDE 4.5

    Starting with KDE 4.5, CMake >= 2.6.4 is required.

    Incompatible Changes

    We are not aware of any incompatible changes between KDE 4.4 and 4.5.


    Other Changes

    Required CMake version

    Starting with KDE 4.5, CMake >= 2.6.4 is required (KDE 4.2 to 4.4 required 2.6.2).

    This change brings us mainly two new features:

    * The find_package() command now additionally
    

    searches in lib/cmake/Foo/ for installed FooConfig.cmake files, while CMake 2.6.0..2.6.2 only look in lib/Foo/cmake/. With CMake < 2.6.3 manual work was required to be able to find these files, now with CMake 2.6.4 it just works and we are compatible to all other CMake-based packages which install their files in such locations.

    * You can now use parenthesis in if()-statements, so you can do now e.g.
    

    if(FOO AND (BAR OR BLAH))

    Commit Policy for kdelibs/cmake/modules/

    The commit policy introduced during the 4.3 development cycle is still active and must be followed.

    New variable KDE_PLATFORM_PROFILE

    The new variable KDE_PLATFORM_PROFILE can be used to test for which profile KDE is currently built for. Possible values are "Desktop", "Tablet" and "Mobile".

    New libraries: kemoticons, kidletime, kcmutils and kprintutils

    With KDE 4.5 3 four new libraries were added to kdelibs: the kemoticons library, the kidletime library, the kcmutils library and the kprintutils library. These libraries come with their associated variables. So if you want to link against these libraries, use ${KDE4_KEMOTICONS_LIBS}, ${KDE4_KIDLETIME_LIBS}, ${KDE4_KCMUTILS_LIBS} and ${KDE4_KPRINTUTILS_LIBS} respectively. They don't require an additional include directory.

    Improved RPATH settings

    In the previous releases of KDE 4, the library installation directory was always added to the RPATH of libraries and executables. With KDE 4.5 this is now only done if the library installation directory is not one of the system default library directories. This means that e.g. /usr/lib is not added anymore to the RPATH.

    Support for QtDeclarative

    Support for the new QtDeclarative module has been added to FindQt4.cmake. To use it, you can use the new variables QT_QTDECLARATIVE_LIBRARY, QT_QTDECLARATIVE_INCLUDE_DIR, QT_QTDECLARATIVE_FOUND and QT_USE_QTDECLARATIVE.

    Other minor changes

    • A cache variable KDE4_SERIALIZE_TOOL has been added to FindKDE4Internal.cmake. It is empty by default,

    but you can set it to a tool to serialize resource-intensive commands in parallel builds.

    • Some improvements to make cross compiling KDE easier were committed to FindKDE4Internal.cmake, but we are still not ready for cross compiling.
    • The documentation was improved, e.g. the macro KDE4_ADD_APP_ICON() was undocumented before.

    New Modules

    Some completely new installed modules have been added during this cycle:

    • FindDBusMenuQt.cmake


    Also added were FindDocBookXML.cmake and FindDocBookXSL.cmake, but both are used only internally inside kdelibs and both are not installed.