словами,
add_library(lib OBJECT ...)
target_link_libraries(lib ...)
так делать нельзя.
хочется чтоб таргет, который будет инклудить потом эту объектную библиотеку получал транзитивно библиотеку, от которой OBJECT lib зависит, т.е.
add_library(dep STATIC ...)
add_library(lib OBJECT ...)
# target_link_libraries(lib dep) <--- так нельзя, к сожалению
add_library(shared SHARED $<TARGET_OBJECTS:lib> ...) <-- и автоматически к shared прилинковался dep
Будет работать в 3.12: https://gitlab.kitware.com/cmake/cmake/issues/14778. В текущей версии CMake это никак не сделать, только отказываться от OBJECT library в пользу обычных библиотек.
Обсуждают сегодня