CMAKE_VERIFY_INTERFACE_HEADER_SETS

在 3.24 版本中加入。

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

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

验证依赖项的头文件集通常不是开发者感兴趣的。因此,FetchContent_MakeAvailable() 显式地将其调用期间的 CMAKE_VERIFY_INTERFACE_HEADER_SETS 设置为 false,但在返回之前恢复其原始值。如果项目将依赖项直接引入到主构建中(例如,在来自 git 子模块的 vendored 项目上调用 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)

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