Вы ожидаете, что lib
будет распространяться, когда кто-то связывается с ilib
.
Но команда add_dependencies
не добавляет свойства для распространения.Вам нужно
# Linking with `ilib` will transitively link with a `lib`
target_link_libraries(ilib INTERFACE lib)
Когда нужно использовать опцию --whole-archive
для компоновщика, это может быть сделано следующим образом:
target_link_libraries(ilib INTERFACE "-Wl,--whole-archive" lib "Wl,--no-whole-archive")
Когда анализирует аргументы для данной функции, CMake найдетаргумент lib
должен быть целевым именем , и он добавит правильную file-level зависимость.С этой зависимостью исполняемый файл будет перекомпонован при каждом изменении файла библиотеки.