/
niceSOFT
/
cmake
Обзор
Документация
Войти
/
niceSOFT
/
cmake
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Help/variable/PROJECT_IS_TOP_LEVEL.rst
39 строк
1 KB
Michael Hirsch
Help: Clarify PROJECT_IS_TOP_LEVEL behavior w.r.t. add_subdirectory
14 июн 2022, 15:06
14 июн 2022, 15:06
75aedb1
Код
Авторство
О чём код?
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` * a directory added by :command:`add_subdirectory` that does not also contain a :command:`project` call * a directory added by :command:`FetchContent_MakeAvailable`, if the fetched content does not contain a :command:`project` call The variable value will be false in: * a directory added by :command:`add_subdirectory` that also contains a :command:`project` call * a directory added by :command:`FetchContent_MakeAvailable`, if the fetched content contains a :command:`project` call