如何解决有没有办法为FetchContent目标获取-isystem?
NO_SYSTEM_FROM_IMPORTED告诉我们IMPORTED
个目标会自动获得-isystem
。这是否也适用于通过FetchContent引入到项目中的目标?
如果没有(我认为是这样,因为获取的目标上出现整洁的警告时出现问题),为此类目标获取-isystem
的最佳方法是什么?
解决方法
实际上非常容易(对@Tsyvarev表示敬意):
include (FetchContent)
set (FETCHCONTENT_QUIET FALSE)
FetchContent_Declare (
Catch2
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v2.4.2
GIT_PROGRESS TRUE
)
FetchContent_MakeAvailable (Catch2)
### here is what makes all include directories -isystem
get_target_property(CATCH2_IID Catch2 INTERFACE_INCLUDE_DIRECTORIES)
set_target_properties(Catch2 PROPERTIES INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${CATCH2_IID}")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。