https://github.com/shadowsocks/openssl-cmake
CMake wrapper for OpenSSL supporting cross-compilation
https://github.com/shadowsocks/openssl-cmake
Last synced: 5 months ago
JSON representation
CMake wrapper for OpenSSL supporting cross-compilation
- Host: GitHub
- URL: https://github.com/shadowsocks/openssl-cmake
- Owner: shadowsocks
- License: mit
- Fork: true (viaduck/openssl-cmake)
- Created: 2020-02-29T01:27:40.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-02-29T01:29:46.000Z (over 5 years ago)
- Last Synced: 2024-12-08T01:01:33.276Z (6 months ago)
- Language: CMake
- Homepage:
- Size: 77.1 KB
- Stars: 7
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 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](https://builds.viaduck.org/prebuilts/openssl/).## 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
1. Add `OpenSSL-CMake` as a submodule to your Git project using `git submodule
add external/openssl-cmake`
2. Initialize the submodule using `git submodule update --init`
3. In your `CMakeLists.txt` include the directory using
`add_subdirectory(external/openssl-cmake)`
4. Link against `ssl` and `crypto` targets, which will also include the headers## Licensing
These scripts, unless otherwise stated, are subject to the MIT license.