Spec-Zone.ru › CMake 3.10

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.10/command/include_guard.html

Spec-Zone.ru

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