name: msvpvf CI

on:
  push:
  pull_request:

jobs:
  build-win32:
    name: Windows i686 (32-bit)
    runs-on: windows-latest
    steps:
    - name: Setup MinGW
      run: |
        curl -L -o mingw-get.tar.xz https://sourceforge.net/projects/mingw/files/Installer/mingw-get/mingw-get-0.6.2-beta-20131004-1/mingw-get-0.6.2-mingw32-beta-20131004-1-bin.zip/download # https://osdn.net/projects/mingw/downloads/68260/mingw-get-0.6.3-mingw32-pre-20170905-1-bin.tar.xz
        mkdir C:\MinGW
        tar xvf mingw-get.tar.xz -C C:\MinGW
        C:\MinGW\bin\mingw-get.exe install mingw32-base-bin
      shell: pwsh

    - uses: actions/checkout@v2

    - name: make
      run: |
        set PATH=C:\MinGW\bin;%PATH%
        set CC=mingw32-gcc
        mingw32-make CC_FLAGS=-static
        mingw32-make gui CC_FLAGS=-static
        strip msvpvf.exe
        strip gui.exe
      shell: cmd

    - name: Upload artifact
      uses: actions/upload-artifact@v2
      with:
        name: msvpvf-win32-${{ github.sha }}
        path: |
          LICENSE
          gui.exe
          msvpvf.exe

  build-win64:
    name: Windows amd64 (64-bit)
    runs-on: windows-latest
    defaults:
      run:
        shell: msys2 {0}
    steps:
    - name: Setup MSYS2
      uses: msys2/setup-msys2@v2
      with:
        msystem: mingw64
        install: >-
          make
          mingw-w64-x86_64-clang

    - uses: actions/checkout@v2

    - name: make
      run: |
        export CC=clang
        make CC_FLAGS=-static
        make gui CC_FLAGS=-static
        strip msvpvf.exe
        strip gui.exe

    - name: Upload artifact
      uses: actions/upload-artifact@v2
      with:
        name: msvpvf-win64-${{ github.sha }}
        path: |
          LICENSE
          gui.exe
          msvpvf.exe

  build-mac:
    name: macOS (64-bit)
    runs-on: macOS-latest
    steps:
    - name: Install "dependencies"
      run: brew install zip

    - uses: actions/checkout@v2

    - name: make
      run: | 
        make
        strip msvpvf
        zip msvpvf.zip msvpvf LICENSE

    - name: Upload artifact
      uses: actions/upload-artifact@v2
      with:
        name: msvpvf-osx-${{ github.sha }}
        path: |
          msvpvf.zip
