Spec-Zone.ru › CMake 3.21

PROJECT_IS_TOP_LEVEL

Новое в версии 3.21.

Логическая переменная, указывающая, был ли вызван project() в главном CMakeLists.txt файле.

Некоторые модули должны включаться только как часть главного CMakeLists.txt файла, чтобы не вызывать нежелательных побочных эффектов в дереве сборки, и эта переменная может использоваться для условного выполнения такого кода. Например, рассмотрим модуль CTest, который создаёт цели и параметры:

project(MyProject)
...
if(PROJECT_IS_TOP_LEVEL)
  include(CTest)
endif()

Значение переменной будет истинным в:

  • главном каталоге проекта
  • главном каталоге внешнего проекта, добавленного с помощью ExternalProject

Значение переменной будет ложным в:

  • каталоге, добавленном с помощью add_subdirectory()
  • каталоге, добавленном с помощью 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API