FindOpenSSL
Найдите библиотеку шифрования OpenSSL.
Этот модуль находит установленную библиотеку OpenSSL и определяет её версию.
Новое в версии 3.19: При запросе версии её можно указать как простое значение или как диапазон. Для подробного описания использования и возможностей диапазонов версий обратитесь к команде find_package().
Новое в версии 3.18: Поддержка OpenSSL 3.0.
Дополнительные компоненты
Новое в версии 3.12.
Этот модуль поддерживает два дополнительных компонента: Crypto и SSL. Оба компонента имеют связанные импортированные целевые объекты, как описано ниже.
Импортированные целевые объекты
Новое в версии 3.4.
Этот модуль определяет следующие целевые объекты типа IMPORTED:
-
OpenSSL::SSL -
Библиотека OpenSSL
ssl, если найдена. -
OpenSSL::Crypto -
Библиотека OpenSSL
crypto, если найдена. -
OpenSSL::applink -
Новое в версии 3.18.
Компоненты OpenSSL
applink, которые могут потребоваться для компиляции в проекты под MSVC. Этот целевой объект доступен только если найдена версия OpenSSL не меньше 0.9.8. Ссылаясь на этот целевой объект, вышеупомянутые целевые объекты OpenSSL можно подключить, даже если у проекта разные конфигурации среды выполнения MSVC с указанными выше целевыми объектами OpenSSL. Этот целевой объект не влияет на платформы, отличные от MSVC.
ПРИМЕЧАНИЕ: из-за того, как INTERFACE_SOURCES потребляются целевыми объектами, если вы не уверены в том, что делаете, всегда предпочтительнее связывать целевой объект OpenSSL::applink как PRIVATE и убедиться, что этот целевой объект подключен не более одного раза для всего графа зависимостей любой библиотеки или исполняемого файла:
target_link_libraries(myTarget PRIVATE OpenSSL::applink)
В противном случае вы, вероятно, столкнётесь с неожиданными случайными проблемами при сборке и компоновке, так как как стандарт ISO C, так и стандарт ISO C++ почти ничего не говорят о том, как должен происходить процесс компоновки.
Переменные результатов
Этот модуль установит следующие переменные в вашем проекте:
-
OPENSSL_FOUND -
Система имеет библиотеку OpenSSL. Если не запрашиваются компоненты, требуется только криптографическая библиотека.
-
OPENSSL_INCLUDE_DIR -
Директория заголовков OpenSSL.
-
OPENSSL_CRYPTO_LIBRARY -
Криптографическая библиотека OpenSSL.
-
OPENSSL_CRYPTO_LIBRARIES -
Криптографическая библиотека OpenSSL и её зависимости.
-
OPENSSL_SSL_LIBRARY -
Библиотека OpenSSL SSL.
-
OPENSSL_SSL_LIBRARIES -
Библиотека OpenSSL SSL и её зависимости.
-
OPENSSL_LIBRARIES -
Все библиотеки OpenSSL и их зависимости.
-
OPENSSL_VERSION -
Это установлено на
$major.$minor.$revision$patch(например,0.9.8s). -
OPENSSL_APPLINK_SOURCE -
Исходные файлы в целевом объекте
OpenSSL::applink, о котором упоминалось выше. Эта переменная всегда должна быть неопределённой, если найденная версия OpenSSL меньше 0.9.8 или платформа не MSVC.
Рекомендации
Установите OPENSSL_ROOT_DIR в корневую директорию установки OpenSSL.
Новое в версии 3.4: Установите OPENSSL_USE_STATIC_LIBS в TRUE для поиска статических библиотек.
Новое в версии 3.5: Установите OPENSSL_MSVC_STATIC_RT , чтобы выбрать MT-версию lib.
© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/module/FindOpenSSL.html