blob: c3e3c87d067bdb307ecef4d954337b09b8c8a60e [file] [log] [blame]
Casey Carter33006022017-04-02 12:24:42 -07001shallow_clone: true
2
3platform:
4 - x86
5 - x64
6
7configuration:
8 - Debug
9 - Release
10
11image:
12 - Visual Studio 2015
13 - Visual Studio 2017
14
Anna Gringauze21cb6bb2018-06-15 10:13:11 -070015environment:
Anna Gringauze6418b5f2019-01-15 10:27:34 -080016 NINJA_TAG: v1.8.2
17 NINJA_SHA512: 9B9CE248240665FCD6404B989F3B3C27ED9682838225E6DC9B67B551774F251E4FF8A207504F941E7C811E7A8BE1945E7BCB94472A335EF15E23A0200A32E6D5
18 NINJA_PATH: C:\Tools\ninja\ninja-%NINJA_TAG%
19 VCVAR2015: 'C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat'
20 VCVAR2017: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat'
Anna Gringauze21cb6bb2018-06-15 10:13:11 -070021 matrix:
22 - GSL_CXX_STANDARD: 14
Anna Gringauze6418b5f2019-01-15 10:27:34 -080023 USE_TOOLSET: MSVC
24 USE_GENERATOR: MSBuild
Anna Gringauze21cb6bb2018-06-15 10:13:11 -070025 - GSL_CXX_STANDARD: 17
Anna Gringauze6418b5f2019-01-15 10:27:34 -080026 USE_TOOLSET: MSVC
27 USE_GENERATOR: MSBuild
28 - GSL_CXX_STANDARD: 14
29 USE_TOOLSET: LLVM
30 USE_GENERATOR: Ninja
31 - GSL_CXX_STANDARD: 17
32 USE_TOOLSET: LLVM
33 USE_GENERATOR: Ninja
Anna Gringauze21cb6bb2018-06-15 10:13:11 -070034
35matrix:
36 exclude:
37 - image: Visual Studio 2015
38 GSL_CXX_STANDARD: 17
Anna Gringauze6418b5f2019-01-15 10:27:34 -080039 - image: Visual Studio 2015
40 USE_TOOLSET: LLVM
41 USE_GENERATOR: MSBuild
Anna Gringauze21cb6bb2018-06-15 10:13:11 -070042
Casey Carter33006022017-04-02 12:24:42 -070043cache:
Neil MacIntoshb2ee4842017-07-13 13:53:56 -070044 - C:\cmake-3.8.0-win32-x86
Anna Gringauze6418b5f2019-01-15 10:27:34 -080045 - C:\Tools\ninja
Casey Carter33006022017-04-02 12:24:42 -070046
47install:
Casey Carter33006022017-04-02 12:24:42 -070048 - ps: |
Anna Gringauze6418b5f2019-01-15 10:27:34 -080049 if (![IO.File]::Exists("$env:NINJA_PATH\ninja.exe")) {
50 Start-FileDownload `
51 "https://github.com/ninja-build/ninja/releases/download/$env:NINJA_TAG/ninja-win.zip"
52 $hash = (Get-FileHash ninja-win.zip -Algorithm SHA512).Hash
53 if ($env:NINJA_SHA512 -eq $hash) {
54 7z e -y -bso0 ninja-win.zip -o"$env:NINJA_PATH"
55 } else { Write-Warning "Ninja download hash changed!"; Write-Output "$hash" }
Casey Carter33006022017-04-02 12:24:42 -070056 }
Anna Gringauze6418b5f2019-01-15 10:27:34 -080057 if ([IO.File]::Exists("$env:NINJA_PATH\ninja.exe")) {
58 $env:PATH = "$env:NINJA_PATH;$env:PATH"
59 } else { Write-Warning "Failed to find ninja.exe in expected location." }
60 if ($env:USE_TOOLSET -ne "LLVM") {
61 if (![IO.File]::Exists("C:\cmake-3.8.0-win32-x86\bin\cmake.exe")) {
62 Start-FileDownload 'https://cmake.org/files/v3.8/cmake-3.8.0-win32-x86.zip'
63 7z x -y -bso0 cmake-3.8.0-win32-x86.zip -oC:\
64 }
65 $env:PATH="C:\cmake-3.8.0-win32-x86\bin;$env:PATH"
66 }
Casey Carter33006022017-04-02 12:24:42 -070067
68before_build:
69 - ps: |
Anna Gringauze6418b5f2019-01-15 10:27:34 -080070 if ("$env:USE_GENERATOR" -eq "Ninja") {
71 $GeneratorFlags = '-k 10'
72 $Architecture = $env:PLATFORM
73 if ("$env:APPVEYOR_BUILD_WORKER_IMAGE" -eq "Visual Studio 2015") {
74 $env:VCVARSALL = "`"$env:VCVAR2015`" $Architecture"
75 } else {
76 $env:VCVARSALL = "`"$env:VCVAR2017`" $Architecture"
77 }
78 $env:CMakeGenFlags = "-G Ninja -DGSL_CXX_STANDARD=$env:GSL_CXX_STANDARD"
Casey Carter33006022017-04-02 12:24:42 -070079 } else {
Anna Gringauze6418b5f2019-01-15 10:27:34 -080080 $GeneratorFlags = '/m /v:minimal'
81 if ("$env:APPVEYOR_BUILD_WORKER_IMAGE" -eq "Visual Studio 2015") {
82 $Generator = 'Visual Studio 14 2015'
83 } else {
84 $Generator = 'Visual Studio 15 2017'
85 }
86 if ("$env:PLATFORM" -eq "x86") {
87 $Architecture = "Win32"
88 } else {
89 $Architecture = "x64"
90 }
91 if ("$env:USE_TOOLSET" -eq "LLVM") {
92 $env:CMakeGenFlags = "-G `"$Generator`" -A $Architecture -T llvm -DGSL_CXX_STANDARD=$env:GSL_CXX_STANDARD"
93 } else {
94 $env:CMakeGenFlags = "-G `"$Generator`" -A $Architecture -DGSL_CXX_STANDARD=$env:GSL_CXX_STANDARD"
95 }
Casey Carter33006022017-04-02 12:24:42 -070096 }
Anna Gringauze6418b5f2019-01-15 10:27:34 -080097 if ("$env:USE_TOOLSET" -eq "LLVM") {
98 $env:CC = "clang-cl"
99 $env:CXX = "clang-cl"
100 if ("$env:PLATFORM" -eq "x86") {
101 $env:CFLAGS = "-m32";
102 $env:CXXFLAGS = "-m32";
103 } else {
104 $env:CFLAGS = "-m64";
105 $env:CXXFLAGS = "-m64";
106 }
Casey Carter33006022017-04-02 12:24:42 -0700107 }
Anna Gringauze6418b5f2019-01-15 10:27:34 -0800108 $env:CMakeBuildFlags = "--config $env:CONFIGURATION -- $GeneratorFlags"
109 - mkdir build
110 - cd build
111 - if %USE_GENERATOR%==Ninja (call %VCVARSALL%)
112 - echo %CMakeGenFlags%
113 - cmake .. %CMakeGenFlags%
Casey Carter33006022017-04-02 12:24:42 -0700114
115build_script:
Anna Gringauze6418b5f2019-01-15 10:27:34 -0800116 - echo %CMakeBuildFlags%
117 - cmake --build . %CMakeBuildFlags%
Casey Carter33006022017-04-02 12:24:42 -0700118
119test_script:
120 - ctest -j2
121
122deploy: off