version: '{build}'
branches:
  only:
    - master

image: Visual Studio 2017

environment:
  global:
    # Appveyor doesn't have Qt 12 yet
    LatestQtVersion: 5.13
  matrix:
# 32 bit builds
# MSVC 2015 builds
# Dynamic Library builds
    # LTS version of Qt, dll, 32bit, MSVC 2015, qmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: x86
    use_mingw: "false"
    use_static: "false"
    use_cmake: "false"
    # LTS version of Qt, dll, 32bit, MSVC 2015, cmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: x86
    use_mingw: "false"
    use_static: "false"
    use_cmake: "true"
# end Dynamic Library builds
# Static Library builds
    # LTS version of Qt, static, 32bit, MSVC 2015, qmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: x86
    use_mingw: "false"
    use_static: "true"
    use_cmake: "false"
    # LTS version of Qt, static, 32bit, MSVC 2015, cmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: x86
    use_mingw: "false"
    use_static: "true"
    use_cmake: "true"
# end Static Library builds
# end MSVC 2015 builds
# MinGW builds
# Dynamic Library builds
    # LTS version of Qt, dll, 32bit, MinGW, qmake
  - QT5: C:\Qt\%LatestQtVersion%\mingw73_32
    COMPILER: C:\Qt\Tools\mingw730_32
    targetPlatform: x86
    use_mingw: "true"
    use_static: "false"
    use_cmake: "false"
    # LTS version of Qt, dll, 32bit, MinGW, cmake
  - QT5: C:\Qt\%LatestQtVersion%\mingw73_32
    COMPILER: C:\Qt\Tools\mingw730_32
    targetPlatform: x86
    use_mingw: "true"
    use_static: "false"
    use_cmake: "true"
# end Dynamic Library builds
# Static Library builds
    # LTS version of Qt, static, 32bit, MinGW, qmake
  - QT5: C:\Qt\%LatestQtVersion%\mingw73_32
    COMPILER: C:\Qt\Tools\mingw730_32
    targetPlatform: x86
    use_mingw: "true"
    use_static: "true"
    use_cmake: "false"
    # LTS version of Qt, static, 32bit, MinGW, cmake
  - QT5: C:\Qt\%LatestQtVersion%\mingw73_32
    COMPILER: C:\Qt\Tools\mingw730_32
    targetPlatform: x86
    use_mingw: "true"
    use_static: "true"
    use_cmake: "true"
# end Static Library builds
# end MinGW builds
# end 32 bit builds
# 64 bit builds
# MSVC 2015 builds
# Dynamic Library builds
    # LTS version of Qt, dll, 64bit, MSVC 2015, qmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017_64
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: amd64
    use_mingw: "false"
    use_static: "false"
    use_cmake: "false"
    # LTS version of Qt, dll, 64bit, MSVC 2015, cmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017_64
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: amd64
    use_mingw: "false"
    use_static: "false"
    use_cmake: "true"
# end Dynamic Library builds
# Static Library builds
    # LTS version of Qt, static, 64bit, MSVC 2015, qmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017_64
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: amd64
    use_mingw: "false"
    use_static: "true"
    use_cmake: "false"
    # LTS version of Qt, static, 64bit, MSVC 2015, cmake
  - QT5: C:\Qt\%LatestQtVersion%\msvc2017_64
    COMPILER: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build
    targetPlatform: amd64
    use_mingw: "false"
    use_static: "true"
    use_cmake: "true"
# end Static Library builds
# end MSVC 2015 builds
# end 64 bit builds

matrix:
  fast_finish: true

before_build:
- set originalWD=%CD%
- call "%QT5%\bin\qtenv2.bat"
- cd /D %originalWD%
- if %use_mingw%==false call "%COMPILER%\vcvarsall.bat" %targetPlatform%
- if %use_static%==true (set USESTATIC=ON) else (set USESTATIC=OFF)
- if %use_mingw%==true (set CMAKEGENERATOR="MinGW Makefiles") else (set CMAKEGENERATOR="NMake Makefiles")
- if %use_mingw%==true (set MAKEENGINE=mingw32-make) else (set MAKEENGINE=nmake)
- if %use_mingw%==true set PATH=%PATH:C:\Program Files\Git\usr\bin;=%

build_script:
- if %use_cmake%==true mkdir build 
- if %use_cmake%==true cd build
- if %use_cmake%==true cmake --version
- if %use_cmake%==true cmake -G %CMAKEGENERATOR% -DCMAKE_BUILD_TYPE=DEBUG -DBUILD_EXAMPLES=ON -DCMAKE_DEBUG_POSTFIX=d -DBUILD_STATIC=%USESTATIC% -DCMAKE_INSTALL_PREFIX="./installed" ../
- if %use_cmake%==true cmake --build .
- if %use_cmake%==true cmake --build . --target install
- if %use_cmake%==true cmake -G %CMAKEGENERATOR% -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_EXAMPLES=ON -DBUILD_STATIC=%USESTATIC% -DCMAKE_INSTALL_PREFIX="./installed" ../
- if %use_cmake%==true cmake --build .
- if %use_cmake%==true cmake --build . --target install
- if %use_cmake%==false if %use_static%==true qmake "CONFIG+=adsBuildStatic"
- if %use_cmake%==false if %use_static%==false qmake
- if %use_cmake%==false %MAKEENGINE% debug
- if %use_cmake%==false %MAKEENGINE% install
- if %use_cmake%==false %MAKEENGINE% release
- if %use_cmake%==false %MAKEENGINE% install

after_build:
- if %use_mingw%==true set PATH=C:\Program Files\Git\usr\bin;%PATH%
