我有一个包含两个子目录(简化)的项目:
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的情况下这样做?我希望尽可能保持这两个项目的独立性,因此可以单独克隆和构建它们。
答案 0 :(得分:1)
project(superproj)
include_directories(foo-api/path/to/includes)
add_subdirectory(foo-api)
add_subdirectory(bar-api)
它的操作会传播到当前目录中的所有子目录。是的,考虑target_include_directories
现代版本的CMake,正如Florian在评论中提到的那样。