路径相关

  • 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)
  • 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 指定符号管理工具路径。