Guidelines and HOWTOs/CMake: Difference between revisions

From KDE Community Wiki
Line 26: Line 26:


===Upgrading from KDELibs4===
===Upgrading from KDELibs4===
 
See https://techbase.kde.org/ECM5/IncompatibleChangesKDELibs4ToECM.
KDELibs4 made lots of modifications to the CMake environment, and provided lots of custom macros that wrapped CMake's own ones. We now try to avoid that, but this means that moving an existing project from KDELibs4 to KDE Frameworks involves making some changes. A list of these changes can be found at [[Guidelines HOWTOs/CMake/IncompatibleChangesKDELibs4ToECM]].


===FAQs===
===FAQs===

Revision as of 15:16, 10 March 2016

Most KDE software uses CMake as a buildsystem. This page is the starting point for CMake-related documentation for KDE software.

You should be aware that there are two main development platforms that KDE software is based on: the older kdelibs4, and its replacement, the KDE Frameworks. Quite a bit of KDE software is in the process of transitioning from kdelibs4 to KDE Frameworks, and the way CMake is used is slightly different between the two.


Building a project with CMake

If you just want to build a CMake-based project on a UNIX system, the following recipe will do that:

   cd /path/to/project/source
   mkdir build
   cd build
   cmake -DCMAKE_INSTALL_PREFIX=/where/to/install/to ..
   make
   make install

Don't forget to replace both paths. If you want an explanation of what this command does and how to make CMake behave differently, or you want to build on Windows or OS/X, see Guidelines HOWTOs/CMake/Building.

Useful resources

You may want to check out the CMake wiki, although beware that it contains quite a bit of out-of-date information.

Reference documentation

Upgrading from KDELibs4

See https://techbase.kde.org/ECM5/IncompatibleChangesKDELibs4ToECM.

FAQs

Mailing lists

The kde-buildsystem mailing list
Discussion of CMake in the KDE community, as well as development of Extra CMake Modules.
CMake mailing list
For users of CMake.
CMake mailing list
For anyone wanting to contribute to CMake.