似乎CMake include_directories 不仅会将传递的目录添加,还将其所有子目录添加到包含列表中。 有没有一种方法可以只添加一个目录(不包含其子目录),即使用 include_directory 命令进行某种排序?
答案 0 :(得分:2)
如documentation中所示,仅添加命令中指示的文件夹,而不添加子文件夹。当然,如果您有一个子文件夹foo
,而有人却#include <foo/bar.h
,那么该文件将被包括在内。
考虑使用target_include_directories
,因为它更灵活,更好,因为它以一个目标为目标,并且如果该目标被重用,则从属包含也可能被带到从属目标(取决于PUBLIC
/ PRIVATE
/ INTERFACE
)。