CMake常用变量和命令(待补充)
预定义变量
-
PROJECT_NAME
:通过project()
指定的项目名称 -
PROJECT_SOURCE_DIR
:工程的根目录 -
PROJECT_BINARY_DIR
:执行cmake命令的目录 -
CMAKE_CURRENT_SOURCE_DIR
: 当前 CMakeLists.txt 文件所在目录 -
CMAKE_CURRENT_BINARY_DIR
: 编译目录,可使用add_subdirectory
来修改 -
EXECUTABLE_OUTPUT_PATH
: 二进制可执行文件 输出位置 -
LIBRARY_OUTPUT_PATH
: 库 文件输出位置 -
BUILD_SHARED_LIBS
: 默认的库编译方式 (shared
或static
) ,默认为static
-
CMAKE_C_FLAGS
: 设置 C 编译器 -
CMAKE_CXX_FLAGS
: 设置 C++ 编译器 -
CMAKE_CXX_FLAGS_DEBUG
: 设置编译类型为Debug
时的编译选项 -
CMAKE_CXX_FLAGS_RELEASE
: 设置编译类型为Release
时的编译选项 -
CMAKE_GENERATOR
: 编译器名称 -
CMAKE_COMMAND
: CMake 可执行文件本身的全路径 -
CMAKE_BUILD_TYPE
: 工程编译生成的版本,Debug / Release
命令
设置项目名称 project
project(name)
name: 项目名
note:命令执行完将 预定义变量 PROJECT_NAME
设置为 name
设置变量(包括 预定义变量)set
set(<variable> <value>... [PARENT_SCOPE]) #设置普通变量
set(<variable> <value>... CACHE <type> <docstring> [FORCE]) #设置缓存条目
set(ENV{<variable>} [<value>]) #设置环境变量
添加目录 add_subdirectory
add_subdirectory(source_dir [binary_dir] [EXCLUDE_FROM_ALL])
source_dir:拥有CMakeLists.txt的子目录
命令执行将会跳到子目录
执行里层的CMakeLists.txt
设置生成程序 add_executable
add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] [source1] [source2 ...])
name:可执行程序名
[WIN32]:程序运行的平台
source:构建程序的源文件
生成链接库 add_library
add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] [<source>...])
name:库名
[STATIC | SHARED | MODULE]:生成库的类型
source:构建库的源文件