cmake 2:内置变量
路径相关
CMAKE_SOURCE_DIR
最顶层的CMakeLists.txt文件所在的目录CMAKE_CURRENT_SOURCE_DIR
当前CMakeLists.txt所在的绝对路径的目录EXECUTABLE_OUTPUT_PATH
指定可执行文件存放的路径LIBRARY_OUTPUT_PATH
指定库文件放置的路径
环境相关
WIN32 | LINUX | APPLE | MSVC | MING
检测当前目标系统的操作系统,如果满足则返回TrueCMAKE_HOST_WIN32 | CMAKE_HOST_LINUX | CMAKE_HOST_APPLE
检测主机系统的操作系统,如果满足则返回TrueCMAKE_SYSTEM_NAME
获取目标系统的系统名,可能值:Linux | Windows | Darwin
。CMAKE_HOST_SYSTEM_NAME
获取主机系统的系统名,可能值:Linux | Windows | Darwin
。CMAKE_SYSTEM_PROCESSOR
获取目标系统的CPU架构,可能值:- Windows:
AMD64 | IA64 | ARM64 | X86
(PROCESSOR_ARCHITECTURE 环境变量) - Linux:
x86_64 | i386 | i686 | aarch64 | arm
(uname -m) - macOS:
x86_64 | arm64
(uname -m)
- Windows:
CMAKE_HOST_SYSTEM_PROCESSOR
获取主机系统的CPU架构,同上
构建相关
CMAKE_BUILD_TYPE
可能的值:Debug | Release | RelWithDebInfo | MinSizeRel
编程语言相关
- CMAKE_C_STANDARD 设置C语言标准
set(CMAKE_C_STANDARD 99)
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD 17)
set(CMAKE_C_STANDARD 23)
- CMAKE_C_EXTENSIONS 控制是否启用C语言扩展
set(CMAKE_C_EXTENSIONS ON)
- CMAKE_C_STANDARD_REQUIRED 控制是否要求C标准必须被支持,如果为TRUE,则会检查编译器是否支持指定的C标准。如果不支持则报错。
set(CMAKE_C_STANDARD_REQUIRED TRUE)
- CMAKE_CXX_STANDARD 设置C语言标准
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD 23)
- CMAKE_CXX_STANDARD_REQUIRED 控制是否启用C++语言扩展
set(CMAKE_CXX_EXTENSIONS ON)
- CMAKE_CXX_EXTENSIONS 控制是否要求C++标准必须被支持,如果为TRUE,则会检查编译器是否支持指定的C标准。如果不支持则报错。
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)
- CMAKE_C_COMPILER
- CMAKE_CXX_COMPILER 指定编译器路径。
- CMAKE_C_COMPILER_ID
- CMAKE_CXX_COMPILER_ID 可能的取值:AppleClang | Clang | GNU | MSVC
- CMAKE_OBJDUMP 指定objdump路径。
- CMAKE_LINKER 指定链接器路径。
- CMAKE_AR 指定静态库的存档工具路径。
- CMAKE_NM 指定符号管理工具路径。