CMake Variables
Variables that Provide Information
CMAKE_CURRENT_SOURCE_DIR
The path to the source directory currently being processed.CMAKE_CURRENT_BINARY_DIR
The path to the binary directory currently being processed.CMAKE_SOURCE_DIR
The path to the top level of the source tree.CMAKE_BINARY_DIR
The path to the binary directory currently being processed.for an in-source build, this would be the same as
CMAKE_SOURCE_DIR
for an out-of-source build, this would be at
./build
folder
PROJECT_SOURCE_DIR
Top level source directory for the current project.PROJECT_BINARY_DIR
Full path to build directory for project.<PROJECT-NAME>_SOURCE_DIR
Top level source directory for the named project.<PROJECT-NAME>_BINARY_DIR
Top level binary directory for the named project.PROJECT_VERSION
Value given to the VERSION option of the most recent call to theproject()
command, if any.CMAKE_VERSION
CMAKE_COMMAND
The full path to the cmake executable.CMAKE_GENERATOR
The generator used to build the project.
Variables that Change Behavior
CMAKE_BUILD_TYPE
Specifies the build type on single-configuration generators.Can be set to
Debug
,Release
,RelWithDebInfo
,MinSizeRel
, ...
CMAKE_CONFIGURATION_TYPES
Specifies the available build types on multi-config generators.CMAKE_MODULE_PATH
List of directories to search for CMake modules.Commands like
include()
andfind_package()
search for files in directories listed by this variable before checking the default modules that come with CMake.
CMAKE_INSTALL_PREFIX
Install directory used by install.If “make install” is invoked or INSTALL is built, this directory is prepended onto all install directories.
This variable defaults to
/usr/local
on UNIX andc:/Program Files
on Windows.
CMAKE_XXX_PATH
By default it is empty, it is intended to be set by the project.
CMAKE_PREFIX_PATH
Path used for searching by FIND_XXX(), with appropriate suffixes added.a.k.a.
CATKIN_DEVEL_PREFIX
in earlier CMake versions; set tocatkin_ws/devel
for example.It contains the “base” directories, the FIND_XXX() commands append appropriate subdirectories to the base directories.
FIND_PROGRAM() adds
/bin
to each of the directories in the path,FIND_LIBRARY() appends
/lib
to each of the directories, andFIND_FILE() and FIND_PATH() append
/include
.
CMAKE_IGNORE_PATH
Path to be ignored by FIND_XXX() commands.This is useful in cross-compiled environments where some system directories contain incompatible but possibly linkable libraries.
CMAKE_INCLUDE_PATH
Path used for searching by FIND_FILE() and FIND_PATH().CMAKE_LIBRARY_PATH
Path used for searching by FIND_LIBRARY().CMAKE_PROGRAM_PATH
Path used for searching by FIND_PROGRAM().
CMAKE_SYSTEM_XXX_PATH
By default it contains the standard directories for the current system. It is NOT intended to be modified by the project.
CMAKE_SYSTEM_IGNORE_PATH
CMAKE_SYSTEM_INCLUDE_PATH
CMAKE_SYSTEM_LIBRARY_PATH
CMAKE_SYSTEM_PREFIX_PATH
CMAKE_SYSTEM_PROGRAM_PATH
Variables that Describe the System
CMAKE_HOST_SYSTEM
CMAKE_SYSTEM_NAME
UNIX
orCMAKE_HOST_UNIX
WIN32
orCMAKE_HOST_WIN32
MSVC
,MSVC_VERSION
ENV
: Access environment variables.Use the syntax
$ENV{VAR}
to read environment variable VAR.See also the
set()
command to setENV{VAR}
.
Variables that Control the Build
EXECUTABLE_OUTPUT_PATH
LIBRARY_OUTPUT_PATH
CMAKE_RUNTIME_OUTPUT_DIRECTORY
Where to put all the RUNTIME targets when built.This variable is used to initialize the RUNTIME_OUTPUT_DIRECTORY property on all the targets.
See that target property for additional information.
Variables for Languages
CMAKE_<LANG>_COMPILER
The full path to the compiler for LANG.CMAKE_CXX_COMPILER
,CMAKE_C_COMPILER
CMAKE_<LANG>_FLAGS
Flags for all build types.CMAKE_CXX_FLAGS
,CMAKE_C_FLAGS
CMAKE_<LANG>_FLAGS_RELEASE
Flags for Release build type or configuration.
CMAKE_CXX_STANDARD
New in version 3.1. Default value for CXX_STANDARD property of targets.CMAKE_CUDA_STANDARD
New in version 3.8. Default value for CUDA_STANDARD property of targets.
Last updated