On this page
PROJECT_IS_TOP_LEVEL
New in version 3.21.
A boolean variable indicating whether the most recently called project() command in the current scope or above was in the 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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
 https://cmake.org/cmake/help/v3.23/variable/PROJECT_IS_TOP_LEVEL.html