Development/CMake KDE 4 4

From KDE TechBase

Changes in the buildsystem from KDE 4.3 to KDE 4.4

As with KDE 4.2 and 4.3, also for KDE 4.4 still CMake >= 2.6.2 is required, so no changes in this regard.

Incompatible Changes

FindQt4.cmake: Imported Targets for the libraries

This change which is under certain circumstances not source compatible.


Other Changes

Commit Policy for kdelibs/cmake/modules/

The commit policy introduced during the 4.3 development cycle has been kept and we try to follow it.

New libraries: knewstuff3, kunitconversion and kdewebkit

With KDE 4.4 3 new libraries were added to kdelibs: the knewstuff3 library, the kunitconversion library and the kdewebkit library. These libraries come with their associated variables. So if you want to link against these libraries, use ${KDE4_KNEWSTUFF3_LIBS}, ${KDE4_KUNITCONVERSION_LIBS} and ${KDE4_KDEWEBKIT_LIBS} respectively. They don't require an additional include directory.

New kdecore component KAuth

With KDE 4.4 the kdecore library now contains a new authorization component, called KAuth, which support PolicyKit. Along with it come two new macros, KDE4_INSTALL_AUTH_ACTIONS() and KDE4_INSTALL_AUTH_HELPER_FILES(). These macros help with generating and installing the policy action files.

Other minor changes

* File MacroAddFileDependencies.cmake removed. We don't ship this file anymore since this file is part of CMake 2.6.2, which we still depend on for KDE 4.4. So it is not necessary to keep an identical copy in KDE.
* A new install location variable DBUS_SYSTEM_SERVICES_INSTALL_DIR has been added. It defaults  to ${CMAKE_INSTALL_PREFIX}/share/dbus-1/system-services/ . You probably want to set it to some system wide location.
  • Macro KDE4_ADD_KCFG_FILES(): new optional argument USE_RELATIVE_PATH. Use this option to specify the (relative) path where the generated files will be put.
  • Support for building KDE4 on GNU Hurd has been improved.

New Modules

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

  • FindHUNSPELL.cmake
  • FindKDevPlatform.cmake
  • FindLibAttica.cmake
  • FindSharedDesktopOntologies.cmake


Also added were FindPolkitQt-1.cmake and FindPolkitQt.cmake, but both are used only internally inside kdelibs and both are not installed.