Cmake, как собрать готовую библиотеку со статической линковкой (т.е. статически слинковать все внешние зависимости этой библиотеки сразу в неё)?
Есть проект, куда все внешние либы линкуются статически (на таргет машинах нет возможности распространять новые версии этих либ). Сейчас необходимо обновить google protobuf. В новой версии этой библиотеки они полностью перешли на cmake и добавили новые внешние зависимости, такие как absl. После сборки и установки google protobuf на build машине проект со статической линковкой не собирается т.к. линковщик не может найти функции библиотеки absl внутри a'шников протобафа. Как мне в процессе сборки protobuf, заставить cmake линковать все зависимости в a'шники протобафа статически?
cmake -Dprotobuf_BUILD_TESTS=OFF .
cmake --build . -j12 --clean-first
sudo cmake --install .
Такими командами собираю протобаф. Какой флаг мне нужно добавить, чтобы линковщик собрал всё статически т.е. не оставлял в а
файлах протобафа никаких внешних ссылок?
- Система сборки проекта тоже cmake.
- Build машина: Ubuntu 22.04
- Target машина: Debian.
- Cmake 3.22
- GCC-12
P.S. После установки протобафа в систему сами a'шники absl лежат в каталоге протобафа. Возможно имеет смысл подхватить их. Но у меня так и не получилось сделать это из cmake скрипта моего проекта.