ist hier von make CMakeLists.txt Snippet:Transitive target_include_directories auf Objektbibliotheken
add_library(foo-object OBJECT src/foo.cpp)
target_include_directories(foo-object PUBLIC include)
add_library(foo SHARED $<TARGET_OBJECTS:${PROJECT_NAME}-object>)
add_library(foo_static STATIC $<TARGET_OBJECTS:${PROJECT_NAME}-object>)
Nun, dies alles funktioniert gut, beide Bibliotheken erzeugt werden. Allerdings habe ich ein Problem, wenn ich versuche, es zu benutzen:
add_executable(bar src/main.cpp)
target_link_libraries(bar foo)
Ziel bar
nicht kompilieren, weil Verzeichnisse von foo-Objekt umfassen nicht weitergegeben werden. Wenn ich auch target_include_directories
direkt auf foo
hinzufüge, wird alles gut kompilieren.
Wie kann ich sowohl foo
als auch foo_static
automatisch verwenden (und weiterleiten, um abhängig davon zu stopfen) Verzeichnisse aus foo-object
?
Guter Titel - machte eine schwierige Frage leicht zu finden. – CJxD