Ich habe ein Projekt, das zwei Unterverzeichnisse (vereinfacht):CMake: build Teilprojekt abhängig von anderen Teilprojekt Header
project(superproj)
add_subdirectory(foo-api)
add_subdirectory(bar-api)
bar-api
verwendet foo-api
Header und erwartet, dass sie in $PREFIX/include/foo
(seine Dateien #include <foo/header.h>
enthalten) installiert werden
Aber wenn ich dieses Superprojekt kompiliere, möchte ich nicht foo-api
tatsächlich in meinem System installiert. Wie baue ich bar-api
in diesem Fall? Ist es möglich, dies zu tun, ohne mit CMakeFile bar-api
zu verwirren? Ich möchte diese beiden Projekte so unabhängig wie möglich halten, also könnte man sie einfach klonen und separat bauen.
Was ist mit ['target_include_directories (... PUBLIC ...)'] (https://cmake.org/cmake/help/latest/command/target_include_directories.html) für 'foo-api'? Das ist normalerweise der Weg, Ihre Bibliothek dazu zu bringen, ihre Include-Verzeichnisse selbst zu propagieren. – Florian