常用的CMake内置宏
CMAKE_PROJECT_NAME:当前项目的名称。PROJECT_NAME:最近通过project()命令激活的项目名称。CMAKE_C_COMPILER:C编译器的完整路径。CMAKE_CXX_COMPILER:C++编译器的完整路径。CMAKE_BUILD_TYPE:指定构建类型(比如Release或Debug)。CMAKE_SOURCE_DIR:项目的顶层源目录。CMAKE_CURRENT_SOURCE_DIR:当前处理的CMakeLists.txt所在的目录。CMAKE_BINARY_DIR:项目的顶层构建目录。CMAKE_CURRENT_BINARY_DIR:当前处理的CMakeLists.txt对应的构建目录。CMAKE_INSTALL_PREFIX:安装目录前缀。CMAKE_MODULE_PATH:指定额外的CMake模块搜索路径。CMAKE_PREFIX_PATH:用于查找库文件的路径前缀。
编译器和工具设置
CMAKE_C_FLAGS:C编译器的命令行选项。CMAKE_CXX_FLAGS:C++编译器的命令行选项。CMAKE_VERBOSE_MAKEFILE:如果为TRUE,构建过程将显示更多的信息。
系统信息
CMAKE_SYSTEM:系统名称,例如Linux-2.6.32-573.el6.x86_64。CMAKE_SYSTEM_NAME:不包含版本的系统名称,如Linux、Windows。CMAKE_SYSTEM_PROCESSOR:目标系统的处理器,例如x86_64。
特殊宏
CMAKE_VERSION:CMake的版本。BUILD_SHARED_LIBS:一个布尔变量,用于控制默认链接库的类型(静态或动态)。
项目宏
PROJECT_NAME:当前通过project()命令设置的项目名称。PROJECT_SOURCE_DIR:包含最顶层CMakeLists.txt文件的目录,即项目的源代码根目录。PROJECT_BINARY_DIR:项目的构建目录,如果是外部构建,这将与CMAKE_BINARY_DIR不同。PROJECT_VERSION:通过project()命令设置的项目版本。PROJECT_VERSION_MAJOR:项目的主版本号。PROJECT_VERSION_MINOR:项目的次版本号。PROJECT_VERSION_PATCH:项目的补丁版本号。PROJECT_VERSION_TWEAK:项目的微调版本号(如果指定)。PROJECT_DESCRIPTION:项目的描述信息(需要CMake 3.9及以上版本)。PROJECT_HOMEPAGE_URL:项目的主页URL(需要CMake 3.12及以上版本)。
PROJECT_VERSION、PROJECT_VERSION_MAJOR、PROJECT_VERSION_MINOR、PROJECT_VERSION_PATCH和PROJECT_VERSION_TWEAK变量的设置依赖于project()命令中指定的版本信息,格式通常是project(ProjectName VERSION major.minor.patch[.tweak])。