3.0.15 #457
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CMake | |
on: | |
push: | |
jobs: | |
get-version: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: Get the version of OpenSSL | |
id: getversion | |
run: | | |
"${{ github.workspace }}/openssl-externalCMake/.github/Scripts-For-Actions/get-version.sh" >> "$GITHUB_OUTPUT" | |
outputs: | |
openssl_version: ${{ steps.getversion.outputs.OPENSSL_VERSION }} | |
package-source-unix: | |
strategy: | |
fail-fast: false | |
runs-on: ubuntu-latest | |
needs: get-version | |
env: | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
run: | | |
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null | |
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ '"$(. /etc/os-release; echo ${VERSION_CODENAME})"' main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null | |
sudo apt-get update | |
sudo apt-get install cmake ninja-build perl build-essential zlib1g-dev | |
- name: run CMake + Ninja | |
run: | | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel -t package_source | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-Source-LF | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-Source.tar.xz | |
package-source-windows: | |
strategy: | |
fail-fast: false | |
runs-on: windows-latest | |
needs: get-version | |
env: | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- name: configure | |
shell: cmd | |
run: git config --global core.autocrlf true | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
shell: cmd | |
run: | | |
choco install cmake | |
choco install ninja | |
- name: run CMake + Ninja | |
shell: cmd | |
run: | | |
del /s /q C:\Strawberry\perl\bin\pkg-config.bat | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel -t package_source | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-Source-CRLF | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-Source.7z | |
build-ubuntu: | |
strategy: | |
fail-fast: false | |
continue-on-error: true | |
runs-on: ubuntu-22.04 | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: Ubuntu-x86_64 | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
run: | | |
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null | |
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ '"$(. /etc/os-release; echo ${VERSION_CODENAME})"' main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null | |
sudo apt-get update | |
sudo apt-get install cmake ninja-build perl build-essential zlib1g-dev | |
- name: run CMake + Ninja | |
run: | | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" -DOPENSSL_ASM=ON -DOPENSSL_ZLIB=ON -DOPENSSL_THREADS=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-linux-x86_64.tar.xz | |
build-iOS: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- arch: "arm64" | |
name: "arm64" | |
asm: "ON" | |
OPENSSL_BUILD_PLATFORM: "ios64-xcrun" | |
simulator_argument: "" | |
- arch: "arm64e" | |
name: "arm64e" | |
asm: "ON" | |
OPENSSL_BUILD_PLATFORM: "ios64-xcrun" | |
simulator_argument: "" | |
- arch: "x86_64" | |
name: "simulator-x86_64" | |
asm: "OFF" | |
OPENSSL_BUILD_PLATFORM: "iossimulator-xcrun" | |
simulator_argument: "-DCMAKE_OSX_SYSROOT=\"$(xcrun --show-sdk-path --sdk iphonesimulator)\"" | |
- arch: "arm64" | |
name: "simulator-arm64" | |
asm: "OFF" | |
OPENSSL_BUILD_PLATFORM: "iossimulator-xcrun" | |
simulator_argument: "-DCMAKE_OSX_SYSROOT=\"$(xcrun --show-sdk-path --sdk iphonesimulator)\"" | |
- arch: "arm64;arm64e;x86_64" | |
name: "unified64" | |
asm: "OFF" | |
OPENSSL_BUILD_PLATFORM: "ios64-unified64" | |
simulator_argument: "" | |
name: build-iOS-${{ matrix.toolchain.name }} | |
continue-on-error: true | |
runs-on: macos-14 | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: iOS-${{ matrix.toolchain.name }} | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: install cmake and ninja | |
run: | | |
while ! brew update; do :; done | |
brew install cmake ninja | |
- name: run CMake + Ninja | |
run: | | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" ${{ matrix.toolchain.simulator_argument }} -DCMAKE_OSX_ARCHITECTURES="${{ matrix.toolchain.arch }}" -DCMAKE_SYSTEM_NAME=iOS -DOPENSSL_ASM="${{ matrix.toolchain.asm }}" -DOPENSSL_ZLIB=ON -DOPENSSL_THREADS=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-${{ matrix.toolchain.OPENSSL_BUILD_PLATFORM }}.tar.xz | |
build-macOS: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- arch: "x86_64" | |
name: "x86_64" | |
runson: "13" | |
asm: "ON" | |
OPENSSL_BUILD_PLATFORM: "darwin64-x86_64" | |
- arch: "arm64" | |
name: "arm64" | |
runson: "14" | |
asm: "ON" | |
OPENSSL_BUILD_PLATFORM: "darwin64-arm64" | |
- arch: "x86_64;arm64" | |
name: "unified" | |
runson: "14" | |
asm: "OFF" | |
OPENSSL_BUILD_PLATFORM: "darwin64-unified64" | |
name: build-macOS-${{ matrix.toolchain.name }} | |
continue-on-error: true | |
runs-on: macos-${{ matrix.toolchain.runson }} | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: macOS-${{ matrix.toolchain.name }} | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: install cmake and ninja | |
run: | | |
while ! brew update; do :; done | |
brew install cmake ninja | |
- name: run CMake + Ninja | |
run: | | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" -DCMAKE_OSX_ARCHITECTURES="${{ matrix.toolchain.arch }}" -DOPENSSL_ASM="${{ matrix.toolchain.asm }}" -DOPENSSL_ZLIB=ON -DOPENSSL_THREADS=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-${{ matrix.toolchain.OPENSSL_BUILD_PLATFORM }}.tar.xz | |
build-MinGW: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- version: "12.2.0" | |
bit: "32" | |
arch: "i686" | |
url: "https://github.com/niXman/mingw-builds-binaries/releases/download/12.2.0-rt_v10-rev2/i686-12.2.0-release-posix-dwarf-msvcrt-rt_v10-rev2.7z" | |
OPENSSL_BUILD_PLATFORM: mingw | |
- version: "13.2.0" | |
bit: "64" | |
arch: "x86_64" | |
url: "https://github.com/niXman/mingw-builds-binaries/releases/download/13.2.0-rt_v11-rev1/x86_64-13.2.0-release-posix-seh-msvcrt-rt_v11-rev1.7z" | |
OPENSSL_BUILD_PLATFORM: mingw64 | |
continue-on-error: true | |
runs-on: windows-latest | |
name: "build-MinGW-GCC${{ matrix.toolchain.version }}-${{ matrix.toolchain.bit }}bit" | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: MinGW-GCC${{ matrix.toolchain.version }}-${{ matrix.toolchain.arch }} | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
run: | | |
choco install cmake | |
choco install ninja | |
- name: install MinGW toolchain | |
run: | | |
New-Item -Path "." -Name "mingw" -ItemType "directory"; | |
(New-Object System.Net.WebClient).DownloadFile("${{ matrix.toolchain.url }}","mingw/mingw.7z"); | |
cmd /c cd mingw "&&" 7z x mingw.7z | |
- name: run CMake + Ninja | |
shell: cmd | |
run: | | |
del /s /q C:\Strawberry\perl\bin\pkg-config.bat | |
set path=${{ github.workspace }}\mingw\mingw${{ matrix.toolchain.bit }}\\bin;%path% | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" -DOPENSSL_ASM=ON -DOPENSSL_THREADS=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-${{ matrix.toolchain.OPENSSL_BUILD_PLATFORM }}.7z | |
build-msvc: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- version: "2022" | |
runson: "2022" | |
call: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat | |
bit: "64" | |
arch: "x86_64" | |
OPENSSL_BUILD_PLATFORM: VC-WIN64A | |
- version: "2019" | |
runson: "2019" | |
call: C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsamd64_x86.bat | |
bit: "32" | |
arch: "i686" | |
OPENSSL_BUILD_PLATFORM: VC-WIN32 | |
continue-on-error: true | |
runs-on: windows-${{ matrix.toolchain.runson }} | |
name: "build-MSVC${{ matrix.toolchain.version }}-${{ matrix.toolchain.bit }}bit" | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: MSVC${{ matrix.toolchain.version }}-${{ matrix.toolchain.arch }} | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
run: | | |
choco install cmake | |
choco install ninja | |
choco install nasm | |
- name: run CMake + Ninja | |
shell: cmd | |
run: | | |
del /s /q C:\Strawberry\perl\bin\pkg-config.bat | |
call "${{ matrix.toolchain.call }}" | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" -DOPENSSL_ASM=ON -DOPENSSL_NASM=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-${{ matrix.toolchain.OPENSSL_BUILD_PLATFORM }}.7z | |
# Use latest NDK from GitHub Actions. | |
build-android: | |
strategy: | |
fail-fast: false | |
matrix: | |
toolchain: | |
- arch: "armeabi-v7a" | |
OPENSSL_BUILD_PLATFORM: android-arm | |
- arch: "arm64-v8a" | |
OPENSSL_BUILD_PLATFORM: android-arm64 | |
- arch: "x86" | |
OPENSSL_BUILD_PLATFORM: android-x86 | |
- arch: "x86_64" | |
OPENSSL_BUILD_PLATFORM: android-x86_64 | |
continue-on-error: true | |
runs-on: ubuntu-latest | |
name: "build-Android-${{ matrix.toolchain.arch }}" | |
needs: get-version | |
env: | |
FS_OPENSSL_PACKAGE_STR: Android-${{ matrix.toolchain.arch }} | |
FS_OPENSSL_VERSION_STR: ${{ needs.get-version.outputs.openssl_version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
path: openssl-externalCMake | |
- name: add CMake repository and needed softwares | |
run: | | |
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null | |
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ '"$(. /etc/os-release; echo ${VERSION_CODENAME})"' main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null | |
sudo apt-get update | |
sudo apt-get install cmake ninja-build perl | |
- name: run CMake + Ninja | |
run: | | |
mkdir -p "build" | |
cd "build" | |
cmake -GNinja -DCMAKE_TOOLCHAIN_FILE="${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake" -DANDROID_ABI=${{ matrix.toolchain.arch }} -DANDROID_PLATFORM=24 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="${{ github.workspace }}/openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }}" -DOPENSSL_ASM=ON -DOPENSSL_ZLIB=ON -DOPENSSL_THREADS=ON "${{ github.workspace }}/openssl-externalCMake" | |
cmake --build . --parallel | |
cmake --build . --parallel -t package | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: openssl${{ env.FS_OPENSSL_VERSION_STR }}-${{ env.FS_OPENSSL_PACKAGE_STR }} | |
path: build/OpenSSL-${{ env.FS_OPENSSL_VERSION_STR }}-${{ matrix.toolchain.OPENSSL_BUILD_PLATFORM }}.tar.xz |