add SDL3 CI #1
Workflow file for this run
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: CI | |
on: [push, pull_request] | |
env: | |
SDL_VERSION: 3.1.3 | |
jobs: | |
linux: | |
name: Linux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This can be replaced by installing libsdl once Ubuntu ships SDL3 | |
- name: Clone SDL3 | |
run: git clone --depth 1 --branch preview-$SDL_VERSION https://github.com/libsdl-org/SDL.git | |
- name: Install dependencies | |
run: | | |
sudo apt-get install ninja-build | |
- name: Build SDL3 (Release) | |
run: | | |
cd SDL | |
cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release | |
ninja -C release | |
cd .. | |
- name: CMake configure (Debug) | |
run: cmake -B debug -G Ninja . -DCMAKE_BUILD_TYPE=Debug -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.so | |
- name: Build (Debug) | |
run: ninja -C debug | |
- name: CMake configure (Release) | |
run: cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release -DBUILD_SD3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.so | |
- name: Build (Release) | |
run: ninja -C release | |
- name: Archive build result | |
uses: actions/upload-artifact@v4 | |
with: | |
name: FAudio-SDL3-lib64 | |
path: release/libFAudio.so.0 | |
macos: | |
name: macOS (CMake) | |
runs-on: macos-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# This can be replaced by installing libsdl once Ubuntu ships SDL3 | |
- name: Clone SDL3 | |
run: git clone --depth 1 --branch preview-$SDL_VERSION https://github.com/libsdl-org/SDL.git | |
- name: Install dependencies | |
run: brew install ninja | |
- name: Build SDL3 (Release) | |
run: | | |
cd SDL | |
cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release | |
ninja -C release | |
cd .. | |
- name: CMake configure (Debug) | |
run: cmake -B debug -G Ninja . -DCMAKE_BUILD_TYPE=Debug -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib | |
- name: Build (Debug) | |
run: ninja -C debug | |
- name: CMake configure (Release) | |
run: cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib | |
- name: Build (Release) | |
run: ninja -C release | |
- name: Archive build result | |
uses: actions/upload-artifact@v4 | |
with: | |
name: FAudio-SDL3-osx | |
path: release/libFAudio.0.dylib | |
linux-mingw: | |
name: Linux MinGW | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Download SDL | |
run: | | |
curl -LO https://github.com/libsdl-org/SDL/releases/download/release-$SDL_VERSION/SDL3-devel-$SDL_VERSION-mingw.tar.gz | |
tar -xvf SDL3-devel-$SDL_VERSION-mingw.tar.gz -C ${GITHUB_WORKSPACE} | |
- name: Install dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install ninja-build mingw-w64 | |
- name: CMake configure 32-bit (Release) | |
run: cmake -B release-x86 -G Ninja . -DBUILD_SDL3=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-i686.cmake -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL3-$SDL_VERSION/i686-w64-mingw32/bin/SDL3.dll -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL3-$SDL_VERSION/i686-w64-mingw32/include/SDL3 | |
- name: Build 32-bit (Release) | |
run: ninja -C release-x86 | |
- name: CMake configure 64-bit (Release) | |
run: cmake -B release-x64 -G Ninja . -DBUILD_SDL3=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-x86_64.cmake -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL3-$SDL_VERSION/x86_64-w64-mingw32/bin/SDL3.dll -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL3-$SDL_VERSION/x86_64-w64-mingw32/include/SDL3 | |
- name: Build 64-bit (Release) | |
run: ninja -C release-x64 | |
- name: Archive build result 32-bit | |
uses: actions/upload-artifact@v4 | |
with: | |
name: FAudio-SDL3-x86 | |
path: release-x86/FAudio.dll | |
- name: Archive build result 64-bit | |
uses: actions/upload-artifact@v4 | |
with: | |
name: FAudio-SDL3-x64 | |
path: release-x64/FAudio.dll |