summaryrefslogtreecommitdiff
path: root/share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst
diff options
context:
space:
mode:
Diffstat (limited to 'share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst')
-rw-r--r--share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst32
1 files changed, 32 insertions, 0 deletions
diff --git a/share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst b/share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst
new file mode 100644
index 0000000..7e40704
--- /dev/null
+++ b/share/cmake-3.22/Help/variable/PROJECT_IS_TOP_LEVEL.rst
@@ -0,0 +1,32 @@
+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`