Basic CMake
Basic CMake usage
This section explains basic aspects of CMake
which you may need in your day-to-day usage.
CMake
comes with extensive documentation, in the form of html files, and as online help accessible via the cmake
executable itself. Execute cmake –help for further help options.
CMake
allows you to specify a build tool (e.g., GNU make, Visual Studio, or Xcode). If not specified on the command line, CMake tries to guess which build tool to use, based on your environment. Once it has identified your build tool, CMake uses the corresponding Generator to create files for your build tool (e.g., Makefiles or Visual Studio or Xcode project files). You can explicitly specify the generator with the command line option -G “Name of the generator”. To see a list of the available generators on your system, execute
$ cmake --help
This will list the generator names at the end of the help text.
The generator names are case-sensitive, and may contain spaces. For this reason, you should enter them exactly as they are listed in the cmake –help output, in quotes. For example, to generate project files specifically for Visual Studio 12, you can execute:
$ cmake -G "Visual Studio 12" path/to/source
For a given development platform there can be more than one adequate generator. If you use Visual Studio, “NMake Makefiles” is a generator you can use for building with NMake. By default, CMake chooses the most specific generator supported by your development environment. If you want an alternative generator, you must tell this to CMake with the -G option.
Options and variables
Variables customize how the build will be generated. Options are boolean variables, with possible values ON/OFF. Options and variables are defined on the CMake
command line like this:
$ cmake -DVARIABLE=value path/to/source You can set a variable after the initial `CMake` invocation to change its value. You can also undefine a variable:
$ cmake -UVARIABLE path/to/source Variables are stored in the `CMake` cache. This is a file named `CMakeCache.txt` stored at the root of your build directory that is generated by `cmake`. Editing it yourself is not recommended.
Variables are listed in the CMake
cache with the variable name and type separated by a colon. You can also specify the variable and type on the CMake
command line:
$ cmake -DVARIABLE:TYPE=value path/to/source
Variables in the CMake
cache are ‘remembered’, so you do not need to type them if you execute cmake
command again. It is recommended to delete the file CMakeCache.txt
to start from a clean configuration.
CMake generators
CMake
can generate, in addition to standard makefiles, specific projects for various integrated development environments (IDEs) such as Xcode, Eclipse, Visual Studio, etc.. The available generators depend on the platform for which cmake have been build. To see the list of available generators do cmake --help
.
Ninja
Generate a Ninja project with cmake -G Ninja /path/to/source/dir
. Building ROOT with Ninja is faster.
Xcode
Generate the Xcode project with cmake -G Xcode /path/to/source/dir
. Open the generated file with the Xcode application.
Visual Studio
Generate the Microsoft Visual Studio solution with cmake -G "Visual Studio 10" /path/to/source/dir
. Open the generated solution with C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.exe
ROOT.sln`