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 -
Библиотека SSL OpenSSL.
-
OPENSSL_SSL_LIBRARIES -
Библиотека SSL OpenSSL и её зависимости.
-
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.
-
OPENSSL_USE_STATIC_LIBS -
Новое в версии 3.4.
Устанавливается в
TRUEдля поиска статических библиотек. -
OPENSSL_MSVC_STATIC_RT -
Новое в версии 3.5.
Устанавливается в
TRUEдля выбора версии lib MT. -
ENV{PKG_CONFIG_PATH} -
В системах Unix-подобных системах
pkg-configиспользуется для поиска системного OpenSSL. Переменную средыPKG_CONFIG_PATHследует установить для поиска в альтернативных расположениях. Полезно в системах с несколькими библиотеками.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/module/FindOpenSSL.html