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
。