version: '{build}'

os: Visual Studio 2015

environment:
  matrix:
    - arch: x86
      compiler: msys2-mingw
      backend: ninja

    - arch: x64
      compiler: msys2-mingw
      backend: ninja

    - arch: x64
      compiler: cygwin
      backend: ninja

    - arch: x86
      compiler: msvc2010
      backend: ninja

    - arch: x86
      compiler: msvc2010
      backend: vs2010

    - arch: x86
      compiler: msvc2015
      backend: ninja
      BOOST_ROOT: C:\Libraries\Boost_1_59_0

    - arch: x86
      compiler: msvc2015
      backend: vs2015
      BOOST_ROOT: C:\Libraries\Boost_1_59_0

    - arch: x64
      compiler: msvc2017
      backend: ninja
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      BOOST_ROOT: C:\Libraries\Boost_1_64_0

    - arch: x64
      compiler: msvc2017
      backend: vs2017
      APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
      BOOST_ROOT: C:\Libraries\Boost_1_64_0

platform:
  - x64

branches:
  only:
    - master

init:
  - ps: |
        If($Env:compiler -like 'msvc2010') {
          Set-WinSystemLocale de-DE
          Start-Sleep -s 5
          Restart-Computer
        }

install:
  - cmd: set "ORIG_PATH=%PATH%"
  # Use a Ninja with QuLogic's patch: https://github.com/ninja-build/ninja/issues/1219
  - cmd: set "MESON_FIXED_NINJA=1"
  - ps: (new-object net.webclient).DownloadFile('http://nirbheek.in/files/binaries/ninja/win32/ninja.exe', 'C:\projects\meson\ninja.exe')
  # Use the x86 python only when building for x86 for the cpython tests.
  # For all other archs (including, say, arm), use the x64 python.
  - cmd: if %arch%==x86 (set MESON_PYTHON_PATH=C:\python35) else (set MESON_PYTHON_PATH=C:\python35-x64)

  # Set paths for BOOST dll files
  - cmd: if %compiler%==msvc2015 ( if %arch%==x86 ( set "PATH=%PATH%;C:\Libraries\boost_1_59_0\lib32-msvc-14.0" ) else ( set "PATH=%PATH%;C:\Libraries\boost_1_59_0\lib64-msvc-14.0" ) )
  - cmd: if %compiler%==msvc2017 ( if %arch%==x86 ( set "PATH=%PATH%;C:\Libraries\boost_1_64_0\lib32-msvc-14.1" ) else ( set "PATH=%PATH%;C:\Libraries\boost_1_64_0\lib64-msvc-14.1" ) )

  # Set paths and config for each build type.
  - cmd: if %compiler%==msvc2010 ( call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" %arch% )
  - cmd: if %compiler%==msvc2015 ( call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" %arch% )
  - cmd: if %compiler%==msvc2017 ( call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsDevCmd.bat" -arch=%arch% )
  - cmd: if %compiler%==cygwin ( set PYTHON=python3 ) else ( set PYTHON=python )
  - ps: |
        If($Env:compiler -eq 'msys2-mingw') {
          If($Env:arch -eq 'x86') {
            $env:Path = 'C:\msys64\mingw32\bin;' + $env:Path
            $env:MESON_PYTHON_PATH = 'C:\msys64\mingw32\bin'
            $env:PYTHON = 'python3'
            C:\msys64\usr\bin\pacman -S --noconfirm mingw32/mingw-w64-i686-python3
          } Else {
            $env:Path = 'C:\msys64\mingw64\bin;' + $env:Path
            $env:MESON_PYTHON_PATH = 'C:\msys64\mingw64\bin'
            $env:PYTHON = 'python3'
            C:\msys64\usr\bin\pacman -S --noconfirm mingw64/mingw-w64-x86_64-python3
          }
        }
  - cmd: if not %compiler%==cygwin ( set "PATH=%cd%;%MESON_PYTHON_PATH%;%PATH%;" )
  - cmd: if %compiler%==cygwin ( set WRAPPER=ci\run-in-cygwin.bat )
  - cmd: if %compiler%==cygwin ( %WRAPPER% which %PYTHON% ) else ( where %PYTHON% )

  # pkg-config is needed for the pkg-config tests on msvc
  - ps: If($Env:compiler.StartsWith('msvc')) {(new-object net.webclient).DownloadFile('http://nirbheek.in/files/binaries/pkg-config/win32/pkg-config.exe', 'C:\projects\meson\pkg-config.exe')}
  - cmd: if %compiler%==cygwin ( call ci\appveyor-install.bat )
  - ps: |
        If($Env:compiler -like 'msvc*') {
          (new-object net.webclient).DownloadFile(
            "https://download.microsoft.com/download/D/B/B/DBB64BA1-7B51-43DB-8BF1-D1FB45EACF7A/msmpisdk.msi",
            "C:\projects\msmpisdk.msi")
          c:\windows\system32\msiexec.exe /i C:\projects\msmpisdk.msi /quiet
          (new-object net.webclient).DownloadFile(
            "https://download.microsoft.com/download/D/B/B/DBB64BA1-7B51-43DB-8BF1-D1FB45EACF7A/MSMpiSetup.exe",
            "C:\projects\MSMpiSetup.exe")
          c:\projects\MSMpiSetup.exe -unattend -full
        }

build_script:
  - cmd: echo No build step.
  - cmd: if %backend%==ninja ( %WRAPPER% ninja.exe --version ) else ( MSBuild /version & echo. )

test_script:
  - cmd: echo Running tests for %arch% and %compiler% with the %backend% backend
  - cmd: "%WRAPPER% %PYTHON% run_tests.py --backend=%backend%"

on_finish:
  - set "PATH=%ORIG_PATH%"
  - appveyor PushArtifact meson-test-run.txt -DeploymentName "Text test logs"
  - appveyor PushArtifact meson-test-run.xml -DeploymentName "XML test logs"

cache:
  - C:\cache
