CMake:根据其他子项目标题构建子项目

时间:2016-07-12 14:57:04

标签: c++ cmake include

我有一个包含两个子目录(简化)的项目:

project(superproj)    
add_subdirectory(foo-api)
add_subdirectory(bar-api)

bar-api使用foo-api标头,并希望它们安装在$PREFIX/include/foo中(其文件包含#include <foo/header.h>

但是当我编译这个超级项目时,我不希望foo-api实际安装在我的系统中。在这种情况下如何构建bar-api?是否可以在不弄乱bar-api的CMakeFile的情况下这样做?我希望尽可能保持这两个项目的独立性,因此可以单独克隆和构建它们。

1 个答案:

答案 0 :(得分:1)

使用include_directories

project(superproj) 
include_directories(foo-api/path/to/includes)   
add_subdirectory(foo-api)
add_subdirectory(bar-api)

它的操作会传播到当前目录中的所有子目录。是的,考虑target_include_directories现代版本的CMake,正如Florian在评论中提到的那样。