version: 1.0.{build}
branches:
  only:
  - master
skip_tags: true

image:
- Visual Studio 2019
- Ubuntu1804
- macOS

install:
- cmd: >-
    git submodule update --init --depth 1
    
- sh: >-
    if [ "$APPVEYOR_BUILD_WORKER_IMAGE" == "Ubuntu1804" ]; then

      sudo apt-get update

      sudo apt-get install -y cmake ninja-build ccache libsdl2-dev libgtk2.0-dev qtbase5-dev qtbase5-dev-tools qtbase5-private-dev qt5-default

    elif [ "$APPVEYOR_BUILD_WORKER_IMAGE" == "macOS" ]; then

      brew install qt5 sdl2

    fi


build_script:
- cmd: >-
      call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvarsall.bat" x64

      msbuild duckstation.sln -t:Build -p:Platform=x64;Configuration=ReleaseLTCG

      rm -f bin/x64/*.pdb bin/x64/*.exp bin/x64/*.lib bin/x64/*.iobj bin/x64/*.ipdb

      rm -f bin/x64/common-tests*

      cp -a data/* bin/x64

      "C:\Program Files\7-Zip\7z.exe" a -r duckstation-win64-release.7z ./bin/x64/*

      appveyor PushArtifact duckstation-win64-release.7z


- sh: >-
    if [ "$APPVEYOR_BUILD_WORKER_IMAGE" == "Ubuntu1804" ]; then

      mkdir -p build-release

      cd build-release

      cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SDL_FRONTEND=ON -DBUILD_QT_FRONTEND=ON -DUSE_SDL2=ON -G Ninja ..

      ninja

      ../appimage/generate-appimages.sh $(pwd)

      if [ $? -eq 0 ]; then

        mv duckstation-qt-x64.AppImage duckstation-qt-x64-release.AppImage

        mv duckstation-sdl-x64.AppImage duckstation-sdl-x64-release.AppImage

        7za a -r duckstation-linux-x64-release.7z duckstation-*.AppImage

        appveyor PushArtifact duckstation-linux-x64-release.7z

      else

        echo "Failed to create AppImages, no AppImage artifact will be pushed"

      fi

    elif [ "$APPVEYOR_BUILD_WORKER_IMAGE" == "macOS" ]; then

      mkdir build-release

      cd build-release
      
      cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SDL_FRONTEND=YES -DBUILD_QT_FRONTEND=YES -DQt5_DIR=/usr/local/opt/qt/lib/cmake/Qt5 ..

      make
      
    fi


test: off