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:\python34) else (set MESON_PYTHON_PATH=C:\python34-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