CMAKE_VERIFY_INTERFACE_HEADER_SETS

在版本 3.24 中引入。

此变量用于在创建目标时初始化其 VERIFY_INTERFACE_HEADER_SETS 属性。将其设置为 true 将启用头文件集验证。

项目通常不应该设置此变量,它旨在作为开发者控件,在 cmake(1) 命令行或其他等效方法上设置。开发者必须有能力根据其机器和编译器的功能来启用或禁用头文件集验证。

通常情况下,开发人员不会对依赖项的头文件集验证感兴趣。因此,FetchContent_MakeAvailable() 在整个调用期间明确将 CMAKE_VERIFY_INTERFACE_HEADER_SETS 设置为 false,但在返回之前会还原其原始值。如果项目将依赖项直接引入到主构建中(例如,在来自 git 子模块的供应商项目上调用 add_subdirectory()),也应这样做。例如

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

# Include the vendored dependency with header set verification disabled
set(CMAKE_VERIFY_INTERFACE_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_header_set_verification})
add_subdirectory(src)

默认情况下,此变量未设置,这会导致禁用头文件集验证。