У меня есть проект cmake c ++, который использует libCrypto ++. У меня есть модуль FindCryptoPP.cmake, размещенный здесь . Важные части:
find_library(CryptoPP_LIBRARY
NAMES cryptopp
DOC "CryptoPP library"
NO_PACKAGE_ROOT_PATH
PATHS "/usr/lib/x86_64-linux-gnu/"
)
...
add_library(CryptoPP::CryptoPP UNKNOWN IMPORTED)
set_target_properties(CryptoPP::CryptoPP PROPERTIES
IMPORTED_LOCATION "${CryptoPP_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${CryptoPP_INCLUDE_DIR}")
И это прекрасно работает, находит файл статической библиотеки (* .a). Теперь я хотел бы создать отдельные цели CryptoPP :: CryptoPP-static и CryptoPP :: CryptoPP-shared.
Необходимые файлы установлены (установка по умолчанию для Ubuntu):
- / USR / Lib / x86_64-Linux-гну / libcryptopp.a
- / USR / Библиотека / x86_64-Linux-ГНУ / libcryptopp.so
Я хочу знать, как указать find_library для поиска в статической или совместно используемой версии (желательно в переносном режиме - мне нужны все Linux, Windows, MacOS) и указать тип созданной цели.