PROJECT_IS_TOP_LEVEL

在版本 3.21 中添加。

一个布尔变量,指示最近调用的 project() 命令是否在顶层 CMakeLists.txt 文件中被调用。

某些模块应该只作为顶层 CMakeLists.txt 文件的一部分被包含,以避免在构建树中引起意外的副作用。这个变量可以被用来有条件地执行这类代码。例如,考虑 CTest 模块,它会创建目标和选项

project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
  include(CTest)
endif()

变量值在以下情况下为真:

变量值在以下情况下为假: