OpenSSL-CMake
CMake script supplying OpenSSL libraries conveniently, encapsulating the
OpenSSL build system on various platforms.
Features
- Allows usage of system OpenSSL
- Allows trivial and complex building of OpenSSL
- Allows cross compilation, especially for Android
- Defaults to prebuilt binaries
System OpenSSL
To use the system OpenSSL, simply set SYSTEM_OPENSSL=ON.
Prebuilt OpenSSL
Default behaviour is the download of a prebuilt binary. This is only intended as a convenience for debugging purposes and NOT for production use. Available prebuilt binaries can be viewed here.
Build OpenSSL
In order to build OpenSSL, set BUILD_OPENSSL=ON along with the branch or
tag name, for example OPENSSL_BRANCH=OpenSSL_1_1_0g.
General Cross Compile
Cross compilation is enabled using CROSS=ON and the target is specified using
CROSS_TARGET=mingw along with the optional CROSS_PREFIX=mingw32-.
Android Cross Compile
Android requires a special CROSS_ANDROID=ON. Using OpenSSL-CMake from
Gradle's native build does not require additional settings. Otherwise, it is
required to set the general NDK variables ANDROID_NDK_ROOT, ANDROID_EABI,
ANDROID_ARCH, ANDROID_API, ANDROID_MACHINE.
Cross compile was tested with NDK r18b, r19c and r20.
Usage
- Add
OpenSSL-CMakeas a submodule to your Git project usinggit submodule add <URL> external/openssl-cmake - Initialize the submodule using
git submodule update --init - In your
CMakeLists.txtinclude the directory usingadd_subdirectory(external/openssl-cmake) - Link against
sslandcryptotargets, which will also include the headers
Licensing
These scripts, unless otherwise stated, are subject to the MIT license.