VERIFY_INTERFACE_HEADER_SETS¶
在 3.24 版本中添加。
用于验证目标 PUBLIC 和 INTERFACE 头文件集中可以独立包含的所有头文件。
当此属性设置为 true 时,并且目标是对象库、静态库、共享库、接口库或启用了导出功能的程序,并且目标具有一个或多个 PUBLIC 或 INTERFACE 头文件集时,将创建一个名为 <target_name>_verify_interface_header_sets 的对象库目标。此验证目标在 PUBLIC 和 INTERFACE 头文件集中,每个头文件对应一个源文件。每个源文件仅包含其关联的头文件。验证目标会链接原始目标以获取其所有使用需求。验证目标的 EXCLUDE_FROM_ALL 和 DISABLE_PRECOMPILE_HEADERS 属性设置为 true,而其 AUTOMOC、AUTORCC、AUTOUIC 和 UNITY_BUILD 属性设置为 false。
如果头文件的 LANGUAGE 属性已设置,则使用该属性的值来确定编译头文件的语言。否则,如果目标具有任何 C++ 源文件,则头文件将作为 C++ 编译。否则,如果目标具有任何 C 源文件,则头文件将作为 C 编译。否则,如果全局启用了 C++,则头文件将作为 C++ 编译。否则,如果全局启用了 C,则头文件将作为 C 编译。否则,头文件将不会被编译。
如果头文件的 SKIP_LINTING 属性设置为 true,则该文件不会被编译。
如果创建了任何验证目标,则会创建一个名为 all_verify_interface_header_sets 的顶层目标,它依赖于所有验证目标。
此属性由 CMAKE_VERIFY_INTERFACE_HEADER_SETS 变量的值初始化,如果该变量在创建目标时已被设置。
如果项目希望控制此属性要验证哪些头文件集,则可以设置 INTERFACE_HEADER_SETS_TO_VERIFY。