INTERFACE_SYSTEM_INCLUDE_DIRECTORIES

公共系统列表包括图书馆的目录。

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

target_include_directories() 命令被赋予 SYSTEM 关键字时,它会使用 PUBLICINTERFACE 关键字后提供的值填充此属性。

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

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

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