CMake:如何仅包含一个标头目录

时间:2018-12-13 11:14:50

标签: cmake header include

似乎CMake include_directories 不仅会将传递的目录添加,还将其所有子目录添加到包含列表中。 有没有一种方法可以只添加一个目录(不包含其子目录),即使用 include_directory 命令进行某种排序?

1 个答案:

答案 0 :(得分:2)

documentation中所示,仅添加命令中指示的文件夹,而不添加子文件夹。当然,如果您有一个子文件夹foo,而有人却#include <foo/bar.h,那么该文件将被包括在内。

考虑使用target_include_directories,因为它更灵活,更好,因为它以一个目标为目标,并且如果该目标被重用,则从属包含也可能被带到从属目标(取决于PUBLIC / PRIVATE / INTERFACE)。