INTERFACE_SYSTEM_INCLUDE_DIRECTORIES

库的公共系统包含目录列表。

目标可以填充此属性,以发布包含系统头文件的包含目录,因此不应导致编译器警告。此外,系统包含目录的搜索顺序在普通包含目录之后,无论指定的顺序如何。

target_include_directories() 命令给出 SYSTEM 关键字时,它将使用 PUBLICINTERFACE 关键字之后提供的 C++ 值来填充此属性。

项目也可以直接获取和设置此属性,但必须注意,将目录添加到此属性不会使这些目录在编译期间被使用。将目录添加到此属性会标记这些目录为系统目录,否则这些目录将被以非系统的方式使用。这看起来可能与重复相似,因此请优先使用带有 SYSTEM 关键字的高级 target_include_directories() 命令,并避免直接设置该属性。

当使用 target_link_libraries() 指定目标依赖项时,CMake 将从所有目标依赖项读取此属性,以将相同的包含目录标记为包含系统头文件。

INTERFACE_SYSTEM_INCLUDE_DIRECTORIES 的内容可以使用带有 $<...> 语法的“生成器表达式”。请参阅 cmake-generator-expressions(7) 手册了解可用的表达式。有关定义构建系统属性的更多信息,请参阅 cmake-buildsystem(7) 手册。