-
Notifications
You must be signed in to change notification settings - Fork 3
/
appveyor.yml
157 lines (146 loc) · 7.42 KB
/
appveyor.yml
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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# Use, modification, and distribution are
# subject to the Boost Software License, Version 1.0. (See accompanying
# file LICENSE.txt)
#
# Copyright René Ferdinand Rivera Morell 2020-2021.
# Configuration for https://www.appveyor.com/.
# We filter when we run to specific branches.
branches:
only:
- /master.*/
# And we also filter to avoid running when config files for other CIs change.
skip_commits:
files:
- .circleci/*
- .cirrus.yml
- .drone.star
- .github/workflows/*
- .semaphore/*
- .travis.yml
- azure-pipelines.yml
# Since we are interested in running on specific compilers we list them
# individually.
environment:
matrix:
# All the Visual Studio installs available on Appveyor
- { job_name: 'VS 2019', COMPILER: "MSVC", CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_VERSION: '[16.0,17.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2019' }
- { job_name: 'VS 2017', COMPILER: "MSVC", CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_VERSION: '[15.0,16.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2017'}
- { job_name: 'VS 2015', COMPILER: "MSVC", CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_LEGACY: '[14.0,15.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' }
- { job_name: 'VS 2013', COMPILER: "MSVC", CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_LEGACY: '[12.0,13.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' }
- { job_name: 'VS 2012', COMPILER: "MSVC", CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_LEGACY: '[11.0,12.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' }
- { job_name: 'VS 2010', COMPILER: "MSVC",CXX: cl.exe, CXXFLAGS: '/Femain', VSWHERE_LEGACY: '[10.0,11.0)', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015' }
# The GCC and Clang variations available for Linux Xenial.
- { job_name: 'Linux GCC 10', COMPILER: "LINUX-GCC", CXX: 'g++-10', PACKAGES: 'g++-10', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux GCC 9', COMPILER: "LINUX-GCC", CXX: 'g++-9', PACKAGES: 'g++-9', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux GCC 8', COMPILER: "LINUX-GCC", CXX: 'g++-8', PACKAGES: 'g++-8', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux GCC 7', COMPILER: "LINUX-GCC", CXX: 'g++-7', PACKAGES: 'g++-7', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux GCC 6', COMPILER: "LINUX-GCC", CXX: 'g++-6', PACKAGES: 'g++-6', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux GCC 5', COMPILER: "LINUX-GCC", CXX: 'g++-5', PACKAGES: 'g++-5', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 10', COMPILER: "LINUX-CLANG", CXX: 'clang++-10', PACKAGES: 'clang-10', LLVM_OS: 'xenial', LLVM_VER: '10', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 9', COMPILER: "LINUX-CLANG", CXX: 'clang++-9', PACKAGES: 'clang-9', LLVM_OS: 'xenial', LLVM_VER: '9', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 8', COMPILER: "LINUX-CLANG", CXX: 'clang++-8', PACKAGES: 'clang-8', LLVM_OS: 'xenial', LLVM_VER: '8', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 7', COMPILER: "LINUX-CLANG", CXX: 'clang++-7', PACKAGES: 'clang-7', LLVM_OS: 'xenial', LLVM_VER: '7', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 6.0', COMPILER: "LINUX-CLANG", CXX: 'clang++-6.0', PACKAGES: 'clang-6.0', LLVM_OS: 'xenial', LLVM_VER: '6.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
- { job_name: 'Linux Clang 5.0', COMPILER: "LINUX-CLANG", CXX: 'clang++-5.0', PACKAGES: 'clang-5.0', LLVM_OS: 'xenial', LLVM_VER: '5.0', APPVEYOR_BUILD_WORKER_IMAGE: 'Ubuntu' }
# Only one Xcode available by default on Appveyor.
- { job_name: 'Xcode 11.3.1', COMPILER: "XCODE", CXX: clang++, XCODE_VERSION: 11.3.1, APPVEYOR_BUILD_WORKER_IMAGE: macos }
# Installing Xcode's on Appveyor fails for some reasons. Hence this
# is disabled.
# - { job_name: 'Xcode 11.2.1'', COMPILER: "XCODE", CXX: clang++, XCODE_VERSION: 11.2.1, APPVEYOR_BUILD_WORKER_IMAGE: macos }
# The "recent" MinGW installs available on Appveyor.
- { job_name: 'MinGW-w64 8.1', COMPILER: "WIN-MINGW", CXX: 'g++.exe', CXXPATH: 'C:\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'}
- { job_name: 'MinGW-w64 7.3', COMPILER: "WIN-MINGW", CXX: 'g++.exe', CXXPATH: 'C:\\mingw-w64\\x86_64-7.3.0-posix-seh-rt_v5-rev0\\mingw64\\bin', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'}
- { job_name: 'MinGW-w64 6.3', COMPILER: "WIN-MINGW", CXX: 'g++.exe', CXXPATH: 'C:\\mingw-w64\\x86_64-6.3.0-posix-seh-rt_v5-rev1\\mingw64\\bin', APPVEYOR_BUILD_WORKER_IMAGE: 'Visual Studio 2015'}
# We specify a single job matrix expansion for the platform type.
platform:
- x86
- x64
# But with some exclusions where it's not possible.
matrix:
exclude:
- { platform: x64, job_name: 'VS 2012' }
- { platform: x64, job_name: 'VS 2010' }
- { platform: x86, COMPILER: 'LINUX-GCC' }
- { platform: x86, COMPILER: 'LINUX-CLANG' }
- { platform: x86, COMPILER: 'XCODE' }
- { platform: x86, COMPILER: 'WIN-MINGW' }
# These are the various per platform and compiler scripts. We use the COMPILER
# env tag to select which one is used. This provides a nice separation between
# declaring what we build with vs. how they are built. And allows reuse of the
# steps.
for:
# Linux job steps.
- matrix:
only:
- COMPILER: 'LINUX-GCC'
- COMPILER: 'LINUX-CLANG'
install:
- sh: |
set -e
uname -a
./.ci_playground/linux-cxx-install.sh
build_script:
- sh: |
set -e
${CXX} --version
${CXX} ${CXXFLAGS} -v src/main.cpp
# Xcode job steps.
- matrix:
only:
- COMPILER: 'XCODE'
install:
- sh: |
set -e
uname -a
./.ci_playground/macos-xcode-install.sh
build_script:
- sh: |
set -e
${CXX} --version
${CXX} ${CXXFLAGS} -v --sysroot "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" src/main.cpp
# MSVC job steps.
- matrix:
only:
- COMPILER: 'MSVC'
install:
# Appveyor has a specific set of steps that it combines into a single sequence.
# This one we use for installing VS version (if desired). Although doing so is
# not practical as it takes a large amount of time to do so. And Appveyor is
# singular in the large number of VS versions is maintains.
- cmd: |
echo ">>>>>"
echo ">>>>> INSTALL TOOLSET .."
echo ">>>>>"
if not "%CHOCO_VS_PACKAGE%"=="" choco install %CHOCO_VS_PACKAGE% -packageParameters "--AdminFile .ci_playground/%CHOCO_VS_PACKAGE%.xml"
choco install vswhere
build_script:
# The build itself sets up which VS to use and compiles with it.
- cmd: |
echo ">>>>>"
echo ">>>>> COMPILE, Setup .."
echo ">>>>>"
CALL .ci_playground/windows-msvc-setup.cmd
echo ">>>>>"
echo ">>>>> COMPILE .."
echo ">>>>>"
"%CXX%" %CXXFLAGS% src/main.cpp
# Windows MinGW job steps.
- matrix:
only:
- COMPILER: 'WIN-MINGW'
install:
# MinGW needs to be int he path and have the libraries it depends on also
# be in the path. This just sets the PATH to the bin location.
- cmd: |
echo ">>>>>"
echo ">>>>> INSTALL TOOLSET .."
echo ">>>>>"
set PATH=%CXXPATH%;%PATH%
build_script:
# The build itself just calls the compiler directly.
- cmd: |
echo ">>>>>"
echo ">>>>> COMPILE .."
echo ">>>>>"
%CXX% --version
%CXX% %CXXFLAGS% src/main.cpp