| PROJECT_IS_TOP_LEVEL |
| -------------------- |
| |
| .. versionadded:: 3.21 |
| |
| A boolean variable indicating whether the most recently called |
| :command:`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 :module:`CTest` module, which creates targets and |
| options: |
| |
| .. code-block:: cmake |
| |
| 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 :module:`ExternalProject` |
| |
| The variable value will be false in: |
| |
| * a directory added by :command:`add_subdirectory` |
| * a directory added by :module:`FetchContent` |