cmake - 有没有办法为 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}")
推荐阅读
- javascript - 如果我不使用 multer,ExpressJS 请求正文为空
- flutter - 吸气剂“长度”在颤振中被调用为空
- amazon-web-services - DynamoDB - 如果 ConditionExpression 在“put”上失败,如何获取项目属性
- javascript - 如何使用 JavaScript 在 Spring Boot 中过滤或显示选定日期的数据?
- python - python中图像矩阵的动画
- javascript - 在 React.js 中我应该使用哪些事件可以准确记录页面访问时间和页面离开时间?
- java - Libgdx 我如何用块创建一个 3D 低多边形地形
- javascript - 如何从第二个中的每个对象复制技能属性并根据属性ID为第一个数组中的每个对象设置该技能属性?(JS)
- json - TS2307:找不到模块或其对应的类型声明
- bison - Bison/flex 逻辑表达式没有括号不起作用