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:
- a directory added by add_subdirectory()
- a directory added by FetchContent
© 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