Here is snippet from make CMakeLists.txt:
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>)
Now, this all works fine, both libraries are generated. However I have a problem when I try to use it:
add_executable(bar src/main.cpp)
target_link_libraries(bar foo)
Target bar
doesn't compile, because include directories from foo-object are not propagated. If I add target_include_directories
directly on foo
as well, everything will compile fine.
How can I make both foo
and foo_static
automatically use (and forward to stuff depending on them) include directories from foo-object
?