name: MSYS2 Makefile (Windows, Legacy)

on:

  push:
    paths:
    - src/**
    - .github/workflows/c-cpp.yml
    - "!**/CMakeLists.txt"

  pull_request:
    paths:
    - src/**
    - .github/workflows/c-cpp.yml
    - "!**/CMakeLists.txt"

jobs:
  msys2:
    # Negative condition disables the job
    if: false
    name: "Win32 GUI, ${{ matrix.build.name }}, ${{ matrix.dynarec.name }}, ${{ matrix.environment.msystem }}"

    runs-on: windows-2022

    defaults:
      run:
        shell: msys2 {0}

    strategy:
      fail-fast: true
      matrix:
        build:
#          - name: Regular
#            debug: n
#            dev: n
          - name: Debug
            debug: y
            dev: n
            slug: -Debug
          - name: Dev
            debug: y
            dev: y
            slug: -Dev
        dynarec:
          - name: ODR
            new: n
            slug: -ODR
          - name: NDR
            new: y
            slug: -NDR
        environment:
#          - msystem: MSYS
#            clang: n
#            x64: y
          - msystem: MINGW32
            prefix: mingw-w64-i686
            clang: n
            x64: n
          - msystem: MINGW64
            prefix: mingw-w64-x86_64
            clang: n
            x64: y
#          - msystem: CLANG32
#            prefix: mingw-w64-clang-i686
#            clang: y
#            x64: n
#          - msystem: CLANG64
#            prefix: mingw-w64-clang-x86_64
#            clang: y
#            x64: y
          - msystem: UCRT64
            prefix: mingw-w64-ucrt-x86_64
            clang: n
            x64: y

    steps:
      - name: Prepare MSYS2 environment
        uses: msys2/setup-msys2@v2
        with:
          release: false
          update: true
          msystem: ${{ matrix.environment.msystem }}
          install: >-
            make
          pacboy: >-
            gcc:p
            clang:p
            pkg-config:p
            freetype:p
            SDL2:p
            zlib:p
            libpng:p
            openal:p
            rtmidi:p
            libslirp:p
            fluidsynth:p

      - name: Checkout repository
        uses: actions/checkout@v4

      - name: make
        run: >-
          make -fwin/Makefile.mingw -j
          DEV_BUILD=${{ matrix.build.dev }}
          DEBUG=${{ matrix.build.debug }}
          NEW_DYNAREC=${{ matrix.dynarec.new }}
          CLANG=${{ matrix.environment.clang }}
          X64=${{ matrix.environment.x64 }}
        working-directory: ./src

      - name: Upload artifact
        uses: actions/upload-artifact@v3
        with:
          name: '86Box${{ matrix.dynarec.slug }}${{ matrix.build.slug }}-Windows-${{ matrix.environment.msystem }}-gha${{ github.run_number }}'
          path: src/86Box.exe
