Spec-Zone.ru › CMake 3.13

include_guard

Обеспечивает заготовку для включения файла, который в данный момент обрабатывается CMake.

include_guard([DIRECTORY|GLOBAL])

Создает заготовку для включения текущего файла CMake (см. документацию переменной CMAKE_CURRENT_LIST_FILE).

CMake завершит обработку текущего файла в месте расположения команды include_guard(), если текущий файл уже был обработан для соответствующего уровня доступа (см. ниже). Это предоставляет функциональность, аналогичную заготовкам включения, обычно используемым в заголовках исходных файлов, или директиве #pragma once. Если текущий файл был обработан ранее для соответствующего уровня доступа, эффект будет таким, как будто была вызвана команда return(). Не вызывайте эту команду внутри функции, определённой в текущем файле.

Можно указать необязательный аргумент, определяющий область действия заготовки. Возможные значения для параметра:

DIRECTORY
Заготовка включения применяется в текущем каталоге и вложенных каталогах. Файл будет включён только один раз внутри этой области каталога, но может быть включён повторно другими файлами вне этого каталога (т.е. родительский каталог или другой каталог, не включённый с помощью add_subdirectory() или include() из текущего файла или его дочерних элементов).
GLOBAL
Заготовка включения применяется глобально ко всему проекту. Текущий файл будет включен только один раз независимо от области действия.

Если аргументы не указаны, include_guard имеет такой же уровень доступа, как переменная, что означает, что эффект заготовки включения изолирован последней функцией или текущим каталогом, если нет вложенных функций. В этом случае поведение команды такое же, как:

if(__CURRENT_FILE_VAR__)
  return()
endif()
set(__CURRENT_FILE_VAR__ TRUE)

© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/command/include_guard.html

Spec-Zone.ru

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