NO_SYSTEM_FROM_IMPORTED

不要将 include 目录从消耗的界面:ref:imported targets 视为系统目录。

当消费目标的 SYSTEM 属性设置为 true 时,INTERFACE_INCLUDE_DIRECTORIES 目标属性的内容被视为系统包含。默认情况下, SYSTEM 对导入的目标为真,对其他目标类型为假。如果 NO_SYSTEM_FROM_IMPORTED 属性在 consuming 目标上设置为 true,则该消费目标中的源代码编译不会将 INTERFACE_INCLUDE_DIRECTORIES 的内容视为系统包含,即使导入目标的 SYSTEM 属性为 false。

使用目标的 INTERFACE_SYSTEM_INCLUDE_DIRECTORIES 属性中列出的目录不受 NO_SYSTEM_FROM_IMPORTED 的影响。这些目录将始终被消费者视为系统包含目录。

如果在创建目标时设置了此属性,则该属性由 CMAKE_NO_SYSTEM_FROM_IMPORTED 变量的值初始化。

请参阅 EXPORT_NO_SYSTEM 目标属性以在提供包含目录的目标而不是使用它们的目标上设置此行为。