VERIFY_INTERFACE_HEADER_SETS¶
在版本 3.24 中添加。
用于验证目标的 PUBLIC
和 INTERFACE
头部集合中的所有头部是否可以单独包含。
当此属性设置为 true 时,并且目标是对象库、静态库、共享库、接口库或启用了导出的可执行文件,并且目标有一个或多个 PUBLIC
或 INTERFACE
头部集合,一个名为 <target_name>_verify_interface_header_sets
的对象库目标被创建。此验证目标具有 PUBLIC
和 INTERFACE
头部集合中每个头部的源文件。每个源文件仅包含其关联的头文件。验证目标链接到原始目标以获得其所有用法需求。验证目标具有设置为 true 的 EXCLUDE_FROM_ALL
和 DISABLE_PRECOMPILE_HEADERS
属性,并且其 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
。