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