CMake中常用的预定义变量
PROJECT_NAME
: 通过PROJECT指定的项目名称
project(Demo)
PROJECT_SOURCE_DIR
: 工程的根目录,上图中的Demo
目录
PROJECT_BINARY_DIR
: 执行cmake
命令的目录,一般是在build
目录,在此目录执行cmake ..
CMAKE_CURRENT_SOURCE_DIR
: 当前CMakeLists.txt文件所在目录
CMAKE_CURRENT_BINARY_DIR
: 编译目录,可使用ADD_SUBDIRECTORY
来修改此变量
# 添加cmake执行子目录
ADD_SUBDIRECTORY(example)
EXECUTABLE_OUTPUT_PATH
: 二进制可执行文件输出位置
# 设置可执行文件的输出路径为 build/bin
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
LIBRARY_OUTPUT_PATH
: 库文件输出位置
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/lib)
常用系统信息变量
CMAKE_MAJOR_VERSION
: cmake的主版本号cmake version 3.11.2
中的3
CMAKE_MINOR_VERSION
: cmake的次版本号cmake version 3.11.2
中的11
CMAKE_PATCH_VERSION
: cmake的补丁等级cmake version 3.11.2
中的2
CMAKE_SYSTEM
: 系统名称,带版本号
CMAKE_SYSTEM_NAME
: 系统名称,不带版本号
CMAKE_SYSTEM_VERSION
: 系统版本号
CMAKE_SYSTEM_PROCESSOR
: 处理器名称
编译选项
BUILD_SHARED_LIBS
: 默认的库编译方式(shared
or static
),默认为static
,一般在ADD_LIBRARY
时直接指定编译库的类型
CMAKE_C_FLAGS
: 设置C编译选项
CMAKE_CXX_FLAGS
: 设置C++编译选项
CMAKE_CXX_FLAGS_DEBUG
: 设置编译类型为Debug时的编译选项CMAKE_CXX_FLAGS_RELEASE
: 设置编译类型为Release时的编译选项
CMAKE_CXX_COMPILER
: 设置C++编译器
# 设置C++编译器为g++
set(CMAKE_CXX_COMPILER "g++")
# 设置标准库版本为c++17 并开启警告
set(CMAKE_CXX_FLAGS "-std=c++17 -Wall")
# 设置Debug模式下,不开启优化,开启调试,生成更详细的gdb调试信息
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -g -ggdb")
# 设置Release模式下,开启最高级优化
set(CMAKE_CXX_FLAGS_RELEASE "-O3")