cmake 2:内置变量
路径相关
- CMAKE_SOURCE_DIR最顶层的CMakeLists.txt文件所在的目录
- CMAKE_CURRENT_SOURCE_DIR当前CMakeLists.txt所在的绝对路径的目录
- EXECUTABLE_OUTPUT_PATH指定可执行文件存放的路径
- LIBRARY_OUTPUT_PATH指定库文件放置的路径
环境相关
- WIN32 | LINUX | APPLE | MSVC | MING检测当前目标系统的操作系统,如果满足则返回True
- CMAKE_HOST_WIN32 | CMAKE_HOST_LINUX | CMAKE_HOST_APPLE检测主机系统的操作系统,如果满足则返回True
- CMAKE_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 指定符号管理工具路径。