mirror of
https://github.com/Cateners/tiny_computer.git
synced 2026-05-21 00:45:49 +08:00
63 lines
2.8 KiB
YAML
63 lines
2.8 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
os:
|
|
- ubuntu-latest
|
|
- macos-latest
|
|
- windows-latest
|
|
cmake_options:
|
|
- "-DWITH_OPENSSL=ON -DWITH_GNUTLS=OFF -DWITH_GCRYPT=OFF" # build with OpenSSL
|
|
- "-DWITH_OPENSSL=OFF -DWITH_GNUTLS=ON -DWITH_GCRYPT=ON" # build with GnuTLS and Libgrypt
|
|
- "-DWITH_OPENSSL=OFF -DWITH_GNUTLS=OFF -DWITH_GCRYPT=OFF" # build without external encryption libraries
|
|
- "-DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw32-linux.cmake" # crosscompile with MinGW toolchain
|
|
include:
|
|
- os: macos-latest
|
|
macos_cmake_options: "-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl" # set this extra var for OSX
|
|
- os: windows-latest
|
|
windows_cmake_options: "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" # set this extra var for Windows
|
|
exclude:
|
|
- os: macos-latest
|
|
cmake_options: "-DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw32-linux.cmake" # don't test MinGW from OSX
|
|
- os: windows-latest
|
|
cmake_options: "-DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-cross-mingw32-linux.cmake" # don't test MinGW from Windows
|
|
- os: windows-latest
|
|
cmake_options: "-DWITH_OPENSSL=ON -DWITH_GNUTLS=OFF -DWITH_GCRYPT=OFF" # don't have OpenSSL on Windows (yet)
|
|
- os: windows-latest
|
|
cmake_options: "-DWITH_OPENSSL=OFF -DWITH_GNUTLS=ON -DWITH_GCRYPT=ON" # don't have GnuTLS and libgcrypt on Windows (yet)
|
|
runs-on: ${{ matrix.os }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Install Ubuntu Build Dependencies
|
|
if: ${{ matrix.os == 'ubuntu-latest' }}
|
|
run: |
|
|
sudo apt update
|
|
sudo apt install libsdl2-dev liblzo2-dev libssl-dev gnutls-dev libgcrypt-dev mingw-w64-x86-64-dev binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 wine
|
|
- name: Install MacOS Build Dependencies
|
|
if: ${{ matrix.os == 'macos-latest' }}
|
|
run: |
|
|
brew update
|
|
brew install sdl2 lzo
|
|
- name: Install Windows Build Dependencies
|
|
if: ${{ matrix.os == 'windows-latest' }}
|
|
run: |
|
|
vcpkg install zlib libjpeg-turbo libpng --triplet=x64-windows # could install more but should use run-vcpkg with caching for this
|
|
- name: Build
|
|
run: |
|
|
mkdir build
|
|
cd build
|
|
cmake ${{ matrix.cmake_options }} ${{ matrix.macos_cmake_options }} ${{ matrix.windows_cmake_options }} ..
|
|
cmake --build .
|
|
- name: Prepare Test
|
|
if: ${{ matrix.os == 'ubuntu-latest' }} # only ubuntu does crosscompile with MinGW toolchain
|
|
run: |
|
|
cp /usr/x86_64-w64-mingw32/lib/libwinpthread-1.dll build/test/
|
|
- name: Test
|
|
run: |
|
|
cd build
|
|
ctest -C Debug --output-on-failure
|