Spec-Zone.ru › CMake

CMAKE_VERIFY_INTERFACE_HEADER_SETS

Добавлено в версии 3.24.

Эта переменная используется для инициализации свойства VERIFY_INTERFACE_HEADER_SETS целевых объектов при их создании. Если задать ей значение true, будет включена проверка наборов заголовочных файлов интерфейса.

Как правило, проектам не следует задавать эту переменную: она предназначена для управления разработчиком и может быть задана в командной строке cmake(1) или другими эквивалентными способами. Разработчик должен иметь возможность включать или отключать проверку наборов заголовочных файлов с учетом возможностей своей машины и компилятора.

Обычно разработчикам не требуется проверять наборы заголовочных файлов зависимостей. Поэтому FetchContent_MakeAvailable() явно устанавливает CMAKE_VERIFY_INTERFACE_HEADER_SETS и CMAKE_VERIFY_PRIVATE_HEADER_SETS в false на время выполнения вызова, но перед возвратом восстанавливает их исходные значения. Если проект напрямую добавляет зависимость в основную сборку (например, вызывает add_subdirectory() для проекта, включенного как подмодуль git), ему также следует поступать аналогичным образом. Например:

# Save original setting so we can restore it later
set(want_interface_header_set_verification ${CMAKE_VERIFY_INTERFACE_HEADER_SETS})
set(want_private_header_set_verification ${CMAKE_VERIFY_PRIVATE_HEADER_SETS})

# Include the vendored dependency with header set verification disabled
set(CMAKE_VERIFY_INTERFACE_HEADER_SETS OFF)
set(CMAKE_VERIFY_PRIVATE_HEADER_SETS OFF)
add_subdirectory(...)   # Vendored sources, e.g. from git submodules

# Add the project's own sources. Restore the developer's original choice
# for whether to enable header set verification.
set(CMAKE_VERIFY_INTERFACE_HEADER_SETS ${want_interface_header_set_verification})
set(CMAKE_VERIFY_PRIVATE_HEADER_SETS ${want_private_header_set_verification})
add_subdirectory(src)

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

См. также CMAKE_VERIFY_PRIVATE_HEADER_SETS.

© 2000–2026 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/latest/variable/CMAKE_VERIFY_INTERFACE_HEADER_SETS.html

Spec-Zone.ru

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