mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-09-22 22:58:12 +03:00
Add optional SDL3 support while keeping SDL2 as the default. SDL3 builds must be selected explicitly with the SYSTEM3_SDL_VERSION CMake option. Centralize most SDL2/SDL3 API differences behind compatibility interfaces. Audio playback uses a dedicated SDL3 backend based on SDL3 audio streams, implemented separately in mako_sdl3.cpp. Android and Nintendo Switch remain on SDL2 for now.
77 lines
2.0 KiB
YAML
77 lines
2.0 KiB
YAML
name: Windows Build
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: windows-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- sys: mingw32
|
|
package: "system3-sdl2-32bit"
|
|
sdl-version: 2
|
|
sdl-deps: "SDL2:p SDL2_ttf:p"
|
|
deps: ""
|
|
- sys: ucrt64
|
|
package: "system3-sdl2-64bit"
|
|
sdl-version: 2
|
|
sdl-deps: "SDL2:p SDL2_ttf:p"
|
|
deps: "nlohmann-json:p"
|
|
- sys: ucrt64
|
|
package: "system3-sdl3-64bit"
|
|
sdl-version: 3
|
|
sdl-deps: "sdl3:p sdl3-ttf:p"
|
|
deps: "nlohmann-json:p"
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
name: MSYS2 SDL${{ matrix.sdl-version }} ${{ matrix.sys }}
|
|
steps:
|
|
|
|
- name: Set up MSYS2
|
|
uses: msys2/setup-msys2@v2
|
|
with:
|
|
msystem: ${{ matrix.sys }}
|
|
pacboy: >-
|
|
${{ matrix.sdl-deps }}
|
|
rtmidi:p
|
|
${{ matrix.deps }}
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@v6
|
|
with:
|
|
submodules: true
|
|
|
|
- name: Copy licenses
|
|
run: |
|
|
ls /${{ matrix.sys }}/share/licenses
|
|
mkdir dist
|
|
cp -r /${{ matrix.sys }}/share/licenses dist/
|
|
cp resources/fonts/*.license dist/licenses/
|
|
cp deps/ymfm/LICENSE dist/licenses/ymfm.license
|
|
|
|
- name: Install dev dependencies
|
|
run: pacboy --noconfirm -S --needed gcc:p cmake:p ninja:p
|
|
|
|
- name: Build
|
|
run: |
|
|
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_COMPILE_WARNING_AS_ERROR=YES \
|
|
-DSYSTEM3_SDL_VERSION=${{ matrix.sdl-version }}
|
|
cmake --build build
|
|
|
|
- name: Test
|
|
run: ctest --output-on-failure --test-dir build
|
|
|
|
- name: Package
|
|
run: |
|
|
cp build/system3.exe COPYING.txt dist/
|
|
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: ${{ matrix.package }}
|
|
path: dist
|
|
compression-level: 9 # because we use it for releases
|