blob: 85725c3cf43ea5e81e308ea9e2085fd011049230 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
|
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: msvc2015
backend: ninja
BOOST_ROOT: C:\Libraries\Boost_1_60_0
- arch: x86
compiler: msvc2015
backend: vs2015
BOOST_ROOT: C:\Libraries\Boost_1_60_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
# Release branches
- /^[0-9]+\.[0-9]+$/
init:
- ps: |
If($Env:compiler -like 'msvc2015') {
Set-WinSystemLocale de-DE
Start-Sleep -s 5
Restart-Computer
}
install:
- ps: |
function DownloadFile([String] $Source, [String] $Destination) {
$retries = 10
for ($i = 1; $i -le $retries; $i++) {
try {
(New-Object net.webclient).DownloadFile($Source, $Destination)
break # succeeded
} catch [net.WebException] {
if ($i -eq $retries) {
throw # fail on last retry
}
$backoff = (10 * $i) # backoff 10s, 20s, 30s...
echo ('{0}: {1}' -f $Source, $_.Exception.Message)
echo ('Retrying in {0}s...' -f $backoff)
Start-Sleep -m ($backoff * 1000)
}
}
}
- 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: DownloadFile -Source 'https://github.com/mesonbuild/cidata/raw/master/ninja.exe' -Destination '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)
# Skip CI requires python
- cmd: python ./skip_ci.py --base-branch-env=APPVEYOR_REPO_BRANCH --is-pull-env=APPVEYOR_PULL_REQUEST_NUMBER
# Set paths for BOOST dll files
- cmd: if %compiler%==msvc2015 ( if %arch%==x86 ( set "PATH=%PATH%;%BOOST_ROOT%\lib32-msvc-14.0" ) else ( set "PATH=%PATH%;%BOOST_ROOT%\lib64-msvc-14.0" ) )
- cmd: if %compiler%==msvc2017 ( if %arch%==x86 ( set "PATH=%PATH%;%BOOST_ROOT%\lib32-msvc-14.1" ) else ( set "PATH=%PATH%;%BOOST_ROOT%\lib64-msvc-14.1" ) )
# Set paths and config for each build type.
- 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 )
# MinGW setup, lines are split to prevent "The input line is too long." error.
- cmd: if %arch%==x86 ( set "PACMAN_ARCH=i686" ) else ( set "PACMAN_ARCH=x86_64" )
- cmd: if %arch%==x86 ( set "PACMAN_BITS=32" ) else ( set "PACMAN_BITS=64" )
- cmd: if %compiler%==msys2-mingw ( set "PATH=C:\msys64\mingw%PACMAN_BITS%\bin;%PATH%" )
- cmd: if %compiler%==msys2-mingw ( set "MESON_PYTHON_PATH=C:\msys64\mingw%PACMAN_BITS%\bin" )
- cmd: if %compiler%==msys2-mingw ( set "PYTHON=python3" )
- cmd: if %compiler%==msys2-mingw ( C:\msys64\usr\bin\pacman -S --needed --noconfirm "mingw%PACMAN_BITS%/mingw-w64-%PACMAN_ARCH%-python3" "mingw%PACMAN_BITS%/mingw-w64-%PACMAN_ARCH%-python3-setuptools" )
# Cygwin
- 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')) {
DownloadFile -Source 'http://nirbheek.in/files/binaries/pkg-config/win32/pkg-config.exe' `
-Destination 'C:\projects\meson\pkg-config.exe'
}
- cmd: if %compiler%==cygwin ( call ci\appveyor-install.bat )
- ps: |
If($Env:compiler -like 'msvc*') {
DownloadFile -Source "https://download.microsoft.com/download/D/B/B/DBB64BA1-7B51-43DB-8BF1-D1FB45EACF7A/msmpisdk.msi" `
-Destination "C:\projects\msmpisdk.msi"
c:\windows\system32\msiexec.exe /i C:\projects\msmpisdk.msi /quiet
DownloadFile -Source "https://download.microsoft.com/download/D/B/B/DBB64BA1-7B51-43DB-8BF1-D1FB45EACF7A/MSMpiSetup.exe" `
-Destination "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
|