PROJECT_IS_TOP_LEVEL

From Get docs
Cmake/docs/3.21/variable/project is top level


PROJECT_IS_TOP_LEVEL

New in version 3.21.


A boolean variable indicating whether project() was called in a top level CMakeLists.txt file.

Some modules should only be included as part of the top level CMakeLists.txt file to not cause unintended side effects in the build tree, and this variable can be used to conditionally execute such code. For example, consider the CTest module, which creates targets and options:

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

The variable value will be true in:

  • the top-level directory of the project
  • the top-level directory of an external project added by ExternalProject

The variable value will be false in:

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/variable/PROJECT_IS_TOP_LEVEL.html