

Include_directories($)Īnd following the same steps, we'll get the same result. We modify CMakeLists.txt to cmake_minimum_required(VERSION 2.4) Instead of building from multiple source files, we can first deploy foo.cpp as a library by using add_library() and afterwards linking it with the main program with target_link_libraries(). Say we have the same set of source/header files as in the example. This example shows how to deploy the "Hello World" program as a library and how to link it with other targets. Each only handles as much of the build as is present in the current directory.įor official resources on CMake, see CMake's Documentation and Tutorial. The final CMakeLists files can be very clear and straightforward, because each is so limited in scope.



Build a library or an executable out of some of the source files in this directory.It also defines which subdirectories CMake should handle as well. Each directory's CMakeLists file defines what the buildsystem should do in that specific directory. On Linux, CMake generates Makefiles on Windows, it can generate Visual Studio projects, and so on.īuild behavior is defined in CMakeLists.txt files - one in every directory of the source code. It accomplishes this by pairing with different platform-specific buildsystems CMake is an intermediate step, that generates build input for different specific platforms. CMake is a tool for defining and managing code builds, primarily for C++.ĬMake is a cross-platform tool the idea is to have a single definition of how the project is built - which translates into specific build definitions for any supported platform.
