NO_SYSTEM_FROM_IMPORTED告诉我们,IMPORTED
目标会自动获得-isystem
。这是否也适用于通过FetchContent引入项目的目标?
如果没有(我认为是因为在获取的目标上出现了整齐的警告),那么为这样的目标获取-isystem
的最佳方法是什么?
NO_SYSTEM_FROM_IMPORTED告诉我们,IMPORTED
目标会自动获得-isystem
。这是否也适用于通过FetchContent引入项目的目标?
如果没有(我认为是因为在获取的目标上出现了整齐的警告),那么为这样的目标获取-isystem
的最佳方法是什么?
2条答案
按热度按时间nx7onnlm1#
这其实很简单(@Tsyvarev的荣誉):
dsekswqp2#
如果您使用的是CMake 3.25(
cmake_minimum_required(VERSION 3.25)
),则可以使用FetchContent_Declare
的SYSTEM
参数,该参数是在merge request #7399 by contributor daquexian中添加的。对于CPM的用户,我已经给CPM作者一个关于这个变化here的提示。
还有新的
SYSTEM
target property,它是在merge request #7308 (also by daquexian)中添加的。如果SYSTEM
是ON
,则INTERFACE_INCLUDE_DIRECTORIES
将被视为系统包含目录。