假设在CMakeLists.txt中我们有两个目标
add_library(liba ...)
target_include_directory(liba PUBLIC /path/to/somewhere/a)
add_executable(exec ...)
target_include_directory(exec PUBLIC /path/to/somewhere/b)
target_link_directories(exec liba)
我知道如何获得INCLUDE_DIRECTORIES
的{{1}}属性。但只提取exec
,而目标/path/to/somewhere/b
的实际源文件将使用来自exec
的其他搜索路径/path/to/somewhere/a
进行编译。
P.S。我想要这样做的原因是我正在尝试将YCM与CMake集成,而CMake生成的compliation数据库缺少头文件的信息,并且当依赖性复杂时写liba
是可怕的。