PROJECT_NAME
当前项目 project()
指定的项目名称
CMAKE_PROJECT_NAME
顶级项目的名称。
该变量保存顶级 CMakeLists.txt 文件中指定的项目名称 project()
命令。如果顶层 CMakeLists.txt 包含多个 project()
调用时,将使用顶层 CMakeLists.txt 中最近调用的一个确定 CMAKE_PROJECT_NAME
包含的名称。例如,考虑以下顶级 CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(First)
project(Second)
add_subdirectory(sub)
project(Third)
并sub/CMakeLists.txt
具有以下内容:
project(SubProj)
message("CMAKE_PROJECT_NAME = ${CMAKE_PROJECT_NAME}")
最近看到的 project()
来自顶层 CMakeLists.txt 的命令将为project(Second)
,因此将打印:
CMAKE_PROJECT_NAME = Second
CMAKE_BINARY_DIR
顶层构建树生成二进制文件的目录
PROJECT_BINARY_DIR / _BINARY_DIR / CMAKE_CURRENT_BINARY_DIR
当前项目生成二进制文件的目录
CMAKE_SOURCE_DIR
顶层构建树的目录,即工程顶层 CMakeLists.txt 目录
PROJECT_SOURCE_DIR / _SOURCE_DIR / CMAKE_CURRENT_SOURCE_DIR
当前项目所在的目录,即当前项目的 CMakeLists.txt 目录
CMAKE_VERSION
CMake版本号。它包含 <major>.<minor>.<patch>
三部分,可以通过以下三个变量分别获取:
CMAKE_MAJOR_VERSION
、CMAKE_MINOR_VERSION
、CMAKE_PATCH_VERSION
。
并且可以使用以下操作符对版本号进行条件判断:VERSION_LESS
、 VERSION_GREATER
、 VERSION_EQUAL
、 VERSION_LESS_EQUAL
、 VERSION_GREATER_EQUAL
,这里注意版本号不能与浮点数比较。