基本变量
(1) PROJECT_SOURCE_DIR
cmake命令后紧跟的目录, 一般是工程的根目录.
(2) PROJECT_BINARY_DIR
执行cmake命令的目录, 通常是${PROJECT_SOURCE_DIR}/build
(3) CMAKE_CURRENT_SOURCE_DIR
当前处理的CMakeLists.txt所在路径
(4) CMAKE_CURRENT_BINARY_DIR
target编译目录, 使用ADD_SUBDIRECTORY(src bin)可以更改此变量的值, SET(EXECUTABLE_OUTPUT_PATH <新路径 > ) 并不会对此变量有影响, 只是改变了最终目录文件的存储路径
(5) CMAKE_CURRENT_LIST_FILE
输出调用这个变量的CMakeLists.txt的完整路径
(6) CMAKE_CURRENT_LIST_LINE
输出这个变量所在的行
(7) CMAKE_MODULE_PATH
定义自己的cmake模块所在路径, 这个变量用于定义自己的cmake模块所在的路径, 如果你的工程比较复杂, 有可能自己编写一些cmake模块,
(8)EXECUTABLE_OUTPUT_PATH
重新定义目录二进制可执行文件的存放位置
(9) LIBRARY_OUTPUT_PATH
重新定义目标链接库文件的存放位置
(10) PROJECT_NAME
返回通过PROJECt指令定义的项目名称
环境变量
(1) 使用$ENV{NAME}可以调用系统的环境变量,比如:
MESSAGE(STATUS “HOME dir:”$ENV{HOME})
(2) 设置环境变量的方式, SET(ENV{name},value)
(3) CMAKE_INCLUDE_CURRENT_DIR
(4) CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE
将工程提供的头文件目录始终至于系统头文件目录的前面, 当你定义 的头文件确实跟系统发生冲突时可以提供一些帮助.
(5) CMAKE_INCLUDE_PATH , CMAKE_LIBRARY_PATH
开关选项
(1) BUILD_SHARED_LIBS
控制默认的库编译方式, 如果未进行设置, 使用ADD_LIBRARY时又没有指定库类型默认编译生成的库都是静态库
(2) CMAKE_C_FLAGS
设置C编译选项
(3) CMAKE_CXX_FLAGS
设置C++编译选项
(4) CMAKE_C_COMPILER
指定C编译 器
(5)CMAKE_CXX_COMPILER
指定C++编译器
(6) CMAKE_BUILD_TYPE
build类型(Debug, Release....)