Guidelines and HOWTOs/CMake: Difference between revisions

From KDE Community Wiki
(10 intermediate revisions by 2 users not shown)
Line 4: Line 4:




==Building a project with CMake==
This page contains some tutorials to help you get started on building a CMake-based buildsystem. This is the recommended way of building your software if you use KDE technologies, such as KDE Frameworks.
 
==Beginners==
 
* [[/FirstProject|A first CMake project]]: if you've never even looked at CMake code before, start here.
* [[/Frameworks|Using a framework]]: introduces you to using a KDE Framework - finding the package and linking your program against it.
 
==Intermediate==
 
* [[/Library|Creating a library]]: demonstrates best practices when creating a library with a CMake-based buildsystem (such as a KDE Framework).
 
== Building with CMake in short ==


If you just want to build a CMake-based project on a UNIX system, the following recipe will do that:
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
<syntaxhighlight lang="bash">
    mkdir build
cd /path/to/project/source
    cd build
mkdir build
    cmake -DCMAKE_INSTALL_PREFIX=/where/to/install/to ..
cd build
    make
cmake -DCMAKE_INSTALL_PREFIX=/where/to/install/to ..
    make install
make
make install
</syntaxhighlight>


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]].
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 [[/Building | the building with CMake]] chapter.


==Useful resources==
==Useful resources==
Line 30: Line 43:
===FAQs===
===FAQs===


* [[Guidelines HOWTOs/CMake/FAQs|KDE's CMake FAQs]]
* [[/FAQs|KDE's CMake FAQs]]
* [http://www.cmake.org/Wiki/CMake_FAQ CMake FAQ on the CMake wiki]
* [http://www.cmake.org/Wiki/CMake_FAQ CMake FAQ on the CMake wiki]



Revision as of 17:18, 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.


This page contains some tutorials to help you get started on building a CMake-based buildsystem. This is the recommended way of building your software if you use KDE technologies, such as KDE Frameworks.

Beginners

  • A first CMake project: if you've never even looked at CMake code before, start here.
  • Using a framework: introduces you to using a KDE Framework - finding the package and linking your program against it.

Intermediate

  • Creating a library: demonstrates best practices when creating a library with a CMake-based buildsystem (such as a KDE Framework).

Building with CMake in short

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 the building with CMake chapter.

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.