CMake预定义变量
- CMAKE_MAJOR_VERSION cmake主版本号,如2.8.6中的2。
- CMAKE_MINOR_VERSION cmake次版本号,如2.8.6中的8。
- CMAKE_PATCH_VERSION cmake补丁等级,如2.8.6中的6。
- CMAKE_SYSTEM 系统名称,例如Linux-2.6.22。
- CAMKE_SYSTEM_NAME 不包含版本的系统名,如Linux。
- CMAKE_SYSTEM_VERSION 系统版本,如2.6.22。
- CMAKE_SYSTEM_PROCESSOR 处理器名称,如i686。
- UNIX 在所有的类UNIX平台为TRUE,包括OS X和cygwin。
- WIN32 在所有的win32平台为TRUE,包括cygwin。
- CMAKE_SOURCE_DIR、PROJECT_SOURCE_DIR、<projectname>_SOURCE_DIR,这三个变量指代的内容是一致的,是工程顶层目录。
- CMAKE_BINARY_DIR、PROJECT_BINARY_DIR、<projectname>_BINARY_DIR,这三个变量指代的内容是一致的,如果是in source编译,指得就是工程顶层目录,如果 是out-of-source编译,指的是工程编译发生的目录。
-
CMAKE_CURRENT_SOURCE_DIR,指的是当前处理的CMakeLists.txt所在的路径。
-
CMAKE_CURRRENT_BINARY_DIR,如果是in-source编译,它跟CMAKE_CURRENT_SOURCE_DIR一致,如果是out-ofsource 编译,他指的是target编译目录。
-
CMAKE_CURRENT_LIST_FILE,输出调用这个变量的CMakeLists.txt的完整路径。
- CMAKE_CURRENT_LIST_LINE,输出这个变量所在的行,可以定位当前CMakeList.txt文件语句执行的位置。
- CMAKE_MODULE_PATH ,定义自己的cmake模块所在的路径。
- EXECUTABLE_OUTPUT_PATH ,重新定义目标二进制可执行文件的存放位置
- LIBRARY_OUTPUT_PATH ,重新定义目标链接库文件的存放位置
- PROJECT_NAME ,返回通过PROJECT指令定义的项目名称
- CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS ,用来控制IF ELSE语句的书写方式
- CMAKE_BUILD_TYPE,控制 Debug 和 Release 模式的构建,例如:
在CMakeList.txt文件中
SET(CMAKE_BUILD_TYPE Debug)
使用命令行参数
cmake DCMAKE_BUILD_TYPE=Release
- BUILD_SHARED_LIBS, 控制默认的库编译方式,如果未进行设置,使用ADD_LIBRARY时又没有指定库类型,默认编译生成的库都是静态库
- CMAKE_C_FLAGS, 设置C编译选项
- CMAKE_CXX_FLAGS, 设置C++编译选项
- CROSS_TOOLCHAIN_PREFIX ,指定编译器路径
- CMAKE_C_COMPILER,指定c编译器
- CMAKE_CXX_COMPILER,指定c++编译器
- CMAKE_INSTALL_PREFIX,指定安装路径
- CMAKE_INCLUDE_PATH,配合 FIND_FILE() 以及 FIND_PATH() 使用。如果头文件没有存放在常规路径(/usr/include, /usr/local/include等),则可以通过这些变量就行弥补。如果不使用 FIND_FILE 和 FIND_PATH的话,CMAKE_INCLUDE_PATH,没有任何作用。
-
CMAKE_LIBRARY_PATH,配合 FIND_LIBRARY() 使用,否则没有任何作用。
-
CMAKE_MODULE_PATH,cmake 为上百个软件包提供了查找器(finder):FindXXXX.cmake当使用非cmake自带的finder时,需要指定finder的路径,这就是CMAKE_MODULE_PATH,配合 FIND_PACKAGE()使用。