У меня есть проект, содержащий два подкаталога (упрощенный):CMake: сборка подпроектов в зависимости от другого подпроекта заголовка
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
? Можно ли это сделать, не возившись с CMakeFile bar-api
? Я хочу, чтобы эти два проекта были максимально независимыми, поэтому можно было просто клонировать и строить их отдельно.
Как насчет ['target_include_directories (... PUBLIC ...)'] (https://cmake.org/cmake/help/latest/command/target_include_directories.html) для 'foo-api'? Обычно это способ сделать вашу библиотеку самораспространяющейся, включая каталоги. – Florian