Introduction to CMake
CMake is an extensible, open-source system that manages the build process in an operating system and in a compiler-independent manner.
Using CMake with executables
Lets assume we have a simple application with a single main.c
file.
We create a CMakeLists.txt
file in the root of our project:
cmake_minimum_required(VERSION 2.8) project(app_project) add_executable(myapp main.c) install(TARGETS myapp DESTINATION bin)
Thats all we need to be able to build our application.
cmake_minimum_required
build requires version 2.8 or greater of cmakeproject
defines unique project nameadd_executable
defines our binary with all linked source filesinstall
tells cmake to install our binary into thebin
directory of the install directory
Building
CMake supports out-of-source builds, so all our compiled code goes into a directory separate to the sources.
To start a build we create a new folder:
$ mkdir build $ cd build
And call cmake with the path to the project’s root
$ cmake ..
This will generate build scripts this should be Makefiles On Linux.
By default cmake will install the build into the system directories. To define a custom install directory we simply pass it to cmake:
$ cmake .. -DCMAKE_INSTALL_PREFIX=../install
To run the build script we can simply use the Makefile:
$ make $ make install
We can now run our binary from the install directory:
$ ../install/myapp