target_link_libraries: Object library usage requirements ignored if also used via $<TARGET_OBJECTS>
After !8923 (merged), usage requirements of libraries used via $<TARGET_OBJECTS>
are no longer propagated.
add_library(implgather INTERFACE)
add_library(dep STATIC dep.c)
add_library(deps INTERFACE)
target_link_libraries(deps INTERFACE dep)
add_library(impl_obj OBJECT impl_obj.c)
target_link_libraries(impl_obj PUBLIC deps)
target_sources(implgather INTERFACE "$<TARGET_OBJECTS:impl_obj>")
target_link_libraries(implgather INTERFACE impl_obj)
add_executable(useimpl main.c)
target_link_libraries(useimpl PRIVATE implgather)
int from_dep(void)
{
return 0;
}
int from_dep(void);
int impl_obj(void)
{
return from_dep();
}
int impl_obj(void);
int main(int argc, char* argv[])
{
return impl_obj();
}
The usage requirement of deps
is not present via the implgather
trampoline.