Как указать таргету CMake, чтобы он компилировался с статической библиотекой?
Ситуация такая: в папке имеется статическая и динамическая библиотека с одним и тем же именем. Как указать в CMAKE таргету, чтобы тот компилировался не с динамической, а с статической библиотекой?
Библиотека видимо сторонняя, установленная в систему пакетным менеджером?
Сам так не делал, но думаю, тут подойдет вариант создания цели imported library: add_library(... static imported ...)
Вообще использование импортированных целей, довольно удобно - не надо самому добавлять опции для каталогов с хедерами и поиска библиотек - cmake сам все добавит, если эта информация есть в импортированном объекте.
Так же, по моему, можно указать в target_link_library полный путь к библиотеке, включая расширение (.a/.lib).
Вспомнил еще, если у вас это дело под линуксом, то в cmake можно использовать find_package(PkgConfig REQUIRED) для включения поиска библиотек с помощью pkg_config и использовать pkg_check_modules для поиска библиотек.
Чтоб pkg_check_modules искал статические библиотеки нужно добавить опцию --static в переменную PKG_CONFIG_ARGN, этот ключ заставит pkg_config искать статические библиотеки.
В этом случае pkg_check_modules создает выходные переменные с префиксом STATIC, их можно использовать в target_link_libraries https://cmake.org/cmake/help/latest/module/FindPkg...
Ну и man pkg_config можно посмотреть для справки.