blob: 277431a599d71f315d9e155530621f4c2b7d9e7f [file] [log] [blame]
Kostace441a92013-08-05 12:40:33 +02001language: cpp
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +02002sudo: false
Kostace441a92013-08-05 12:40:33 +02003
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +02004matrix:
5 include:
6
7 # 1/ Linux Clang Builds
8 - os: linux
9 compiler: clang
10 addons: &clang35
11 apt:
12 sources: ['llvm-toolchain-precise-3.5', 'ubuntu-toolchain-r-test']
13 packages: ['clang-3.5']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020014 env: COMPILER='clang++-3.5' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020015
16 - os: linux
17 compiler: clang
18 addons: *clang35
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020019 env: COMPILER='clang++-3.5' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020020
21
22 - os: linux
23 compiler: clang
24 addons: &clang36
25 apt:
26 sources: ['llvm-toolchain-precise-3.6', 'ubuntu-toolchain-r-test']
27 packages: ['clang-3.6']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020028 env: COMPILER='clang++-3.6' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020029
30 - os: linux
31 compiler: clang
32 addons: *clang36
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020033 env: COMPILER='clang++-3.6' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020034
35
36 - os: linux
37 compiler: clang
38 addons: &clang37
39 apt:
40 sources: ['llvm-toolchain-precise-3.7', 'ubuntu-toolchain-r-test']
41 packages: ['clang-3.7']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020042 env: COMPILER='clang++-3.7' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020043
44 - os: linux
45 compiler: clang
46 addons: *clang37
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020047 env: COMPILER='clang++-3.7' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020048
49
50 - os: linux
51 compiler: clang
52 addons: &clang38
53 apt:
Daniel J. Hofmann1706dd42016-05-07 18:54:46 +020054 sources: ['llvm-toolchain-precise-3.8', 'ubuntu-toolchain-r-test']
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020055 packages: ['clang-3.8']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020056 env: COMPILER='clang++-3.8' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020057
58 - os: linux
59 compiler: clang
60 addons: *clang38
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020061 env: COMPILER='clang++-3.8' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020062
63
64 # 2/ Linux GCC Builds
65 - os: linux
66 compiler: gcc
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +010067 addons: &gcc47
68 apt:
69 sources: ['ubuntu-toolchain-r-test']
70 packages: ['g++-4.7']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020071 env: COMPILER='g++-4.7' BUILD_TYPE='Release'
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +010072
73 - os: linux
74 compiler: gcc
75 addons: *gcc47
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020076 env: COMPILER='g++-4.7' BUILD_TYPE='Debug'
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +010077
78
79 - os: linux
80 compiler: gcc
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020081 addons: &gcc48
82 apt:
83 sources: ['ubuntu-toolchain-r-test']
84 packages: ['g++-4.8']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020085 env: COMPILER='g++-4.8' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020086
87 - os: linux
88 compiler: gcc
89 addons: *gcc48
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020090 env: COMPILER='g++-4.8' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020091
92
93 - os: linux
94 compiler: gcc
95 addons: &gcc49
96 apt:
97 sources: ['ubuntu-toolchain-r-test']
98 packages: ['g++-4.9']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +020099 env: COMPILER='g++-4.9' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200100
101 - os: linux
102 compiler: gcc
103 addons: *gcc49
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200104 env: COMPILER='g++-4.9' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200105
106
107 - os: linux
108 compiler: gcc
109 addons: &gcc5
110 apt:
111 sources: ['ubuntu-toolchain-r-test']
112 packages: ['g++-5']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200113 env: COMPILER='g++-5' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200114
115 - os: linux
116 compiler: gcc
117 addons: *gcc5
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200118 env: COMPILER='g++-5' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200119
120
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100121 - os: linux
122 compiler: gcc
123 addons: &gcc6
124 apt:
125 sources: ['ubuntu-toolchain-r-test']
126 packages: ['g++-6']
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200127 env: COMPILER='g++-6' BUILD_TYPE='Release'
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100128
129 - os: linux
130 compiler: gcc
131 addons: *gcc6
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200132 env: COMPILER='g++-6' BUILD_TYPE='Debug'
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100133
134 # 3a/ Linux C++11 GCC builds
135 - os: linux
136 compiler: gcc
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200137 addons: *gcc48
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100138 env: COMPILER='g++-4.8' BUILD_TYPE='Release' CPP11=1
139
140 - os: linux
141 compiler: gcc
142 addons: *gcc48
143 env: COMPILER='g++-4.8' BUILD_TYPE='Debug' CPP11=1
144
145 # 3b/ Linux C++11 Clang builds
146 - os: linux
147 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200148 addons: *clang38
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100149 env: COMPILER='clang++-3.8' BUILD_TYPE='Release' CPP11=1
150
151 - os: linux
152 compiler: clang
153 addons: *clang38
154 env: COMPILER='clang++-3.8' BUILD_TYPE='Debug' CPP11=1
155
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200156 # 4a/ Linux C++14 GCC builds
157 - os: linux
158 compiler: gcc
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200159 addons: *gcc6
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200160 env: COMPILER='g++-6' BUILD_TYPE='Release' CPP14=1
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100161
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200162 - os: linux
163 compiler: gcc
164 addons: *gcc6
165 env: COMPILER='g++-6' BUILD_TYPE='Debug' CPP14=1
166
167 # 4b/ Linux C++14 Clang builds
168 - os: linux
169 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200170 addons: *clang38
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200171 env: COMPILER='clang++-3.8' BUILD_TYPE='Release' CPP14=1
172
173 - os: linux
174 compiler: clang
175 addons: *clang38
176 env: COMPILER='clang++-3.8' BUILD_TYPE='Debug' CPP14=1
177
178
179 # 5/ OSX Clang Builds
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200180 - os: osx
Martin Hořeňovskýa600bfe2017-02-01 21:01:14 +0100181 osx_image: xcode7.3
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200182 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200183 env: COMPILER='clang++' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200184
185 - os: osx
Martin Hořeňovskýa600bfe2017-02-01 21:01:14 +0100186 osx_image: xcode7.3
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200187 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200188 env: COMPILER='clang++' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200189
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200190 - os: osx
Phil Nash1c9a6ca2016-09-27 11:20:33 +0100191 osx_image: xcode8
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200192 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200193 env: COMPILER='clang++' BUILD_TYPE='Debug'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200194
195 - os: osx
Phil Nash1c9a6ca2016-09-27 11:20:33 +0100196 osx_image: xcode8
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200197 compiler: clang
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200198 env: COMPILER='clang++' BUILD_TYPE='Release'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200199
Martin Hořeňovský7869e5b2017-04-20 22:52:41 +0200200 - os: osx
201 osx_image: xcode8
202 compiler: clang
203 env: COMPILER='clang++' BUILD_TYPE='Debug' USE_CPP11=1
204
205 - os: osx
206 osx_image: xcode8
207 compiler: clang
208 env: COMPILER='clang++' BUILD_TYPE='Release' USE_CPP11=1
209
210 - os: osx
211 osx_image: xcode8
212 compiler: clang
213 env: COMPILER='clang++' BUILD_TYPE='Debug' USE_CPP14=1
214
215 - os: osx
216 osx_image: xcode8
217 compiler: clang
218 env: COMPILER='clang++' BUILD_TYPE='Release' USE_CPP14=1
219
Kostace441a92013-08-05 12:40:33 +0200220
221install:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200222 - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
223 - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
224 - |
225 if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
226 CMAKE_URL="http://www.cmake.org/files/v3.3/cmake-3.3.2-Linux-x86_64.tar.gz"
Martin Hořeňovskýa600bfe2017-02-01 21:01:14 +0100227 mkdir cmake && travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200228 export PATH=${DEPS_DIR}/cmake/bin:${PATH}
229 elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200230 which cmake || brew install cmake
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200231 fi
232
233before_script:
234 - export CXX=${COMPILER}
235 - cd ${TRAVIS_BUILD_DIR}
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200236 - cmake -H. -BBuild -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -Wdev -DUSE_CPP11=${CPP11} -DUSE_CPP14=${CPP14}
Kostace441a92013-08-05 12:40:33 +0200237 - cd Build
Kostace441a92013-08-05 12:40:33 +0200238
239script:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200240 - make -j 2
241 - ctest -V -j 2