FindOpenSSL

Find the OpenSSL encryption library.

Optional COMPONENTS

This module supports two optional COMPONENTS: Crypto and SSL. Both components have associated imported targets, as described below.

Imported Targets

This module defines the following IMPORTED targets:

OpenSSL::SSL

The OpenSSL ssl library, if found.

OpenSSL::Crypto

The OpenSSL crypto library, if found.

OpenSSL::applink

The OpenSSL applink components that might be need to be compiled into projects under MSVC. This target is available only if found OpenSSL version is not less than 0.9.8. By linking this target the above OpenSSL targets can be linked even if the project has different MSVC runtime configurations with the above OpenSSL targets. This target has no effect on platforms other than MSVC.

NOTE: Due to how INTERFACE_SOURCES are consumed by the consuming target, unless you certainly know what you are doing, it is always preferred to link OpenSSL::applink target as PRIVATE and to make sure that this target is linked at most once for the whole dependency graph of any library or executable:

target_link_libraries(myTarget PRIVATE OpenSSL::applink)

Otherwise you would probably encounter unexpected random problems when building and linking, as both the ISO C and the ISO C++ standard claims almost nothing about what a link process should be.

Result Variables

This module will set the following variables in your project:

OPENSSL_FOUND

System has the OpenSSL library. If no components are requested it only requires the crypto library.

OPENSSL_INCLUDE_DIR

The OpenSSL include directory.

OPENSSL_CRYPTO_LIBRARY

The OpenSSL crypto library.

OPENSSL_CRYPTO_LIBRARIES

The OpenSSL crypto library and its dependencies.

OPENSSL_SSL_LIBRARY

The OpenSSL SSL library.

OPENSSL_SSL_LIBRARIES

The OpenSSL SSL library and its dependencies.

OPENSSL_LIBRARIES

All OpenSSL libraries and their dependencies.

OPENSSL_VERSION

This is set to $major.$minor.$revision$patch (e.g. 0.9.8s).

OPENSSL_APPLINK_SOURCE

The sources in the target OpenSSL::applink that is mentioned above. This variable shall always be undefined if found openssl version is less than 0.9.8 or if platform is not MSVC.

Hints

Set OPENSSL_ROOT_DIR to the root directory of an OpenSSL installation. Set OPENSSL_USE_STATIC_LIBS to TRUE to look for static libraries. Set OPENSSL_MSVC_STATIC_RT set TRUE to choose the MT version of the lib.