将target_include_directories分为SYSTEM和非系统

时间:2019-04-15 04:40:34

标签: cmake

来自cmake doc

我了解到SYSTEM的{​​{1}}参数是在用target_include_directories作用域关键字列出目录之前给出的,因此,据我了解您需要将PRIVATE|INTERFACE|PUBLIC分为SYSTEM和非SYSTEM。

但是,cmake可以让您写这种东西:

target_include_directories

我不明白为什么cmake让您这么做,这种陈述的后果是什么。
我在某处读到,如果您一次编写target_include_directories(foo_target PRIVATE foo/src/include SYSTEM PRIVATE ${SOME_LIB_INCLUDE_DIRS} PUBLIC foo/api/include SYSTEM PUBLIC ${LIB2_INCLUDE_DIRS} ) ,则之后的所有内容都将被视为SYSTEM标头,这意味着在我的示例中SYSTEM标头将已经被视为foo/api/include他们似乎只使用SYSTEM关键字。
谢谢。

0 个答案:

没有答案