Spec-Zone.ru › CMake 3.16

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–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.16/command/include_guard.html

Spec-Zone.ru

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