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. Если не запрашиваются компоненты, требуется только библиотека crypto.
-
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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.25/module/FindOpenSSL.html