blob: 7be58e631a4393558444c1d24075e2cae79e0781 [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
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +01004common_sources: &all_sources
5 - ubuntu-toolchain-r-test
6 - llvm-toolchain-trusty
7 - llvm-toolchain-trusty-3.9
8 - llvm-toolchain-trusty-4.0
9 - llvm-toolchain-trusty-5.0
10
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020011matrix:
12 include:
13
14 # 1/ Linux Clang Builds
15 - os: linux
16 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010017 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020018 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010019 sources: *all_sources
20 packages: ['valgrind', 'clang-3.5']
21 env: COMPILER='clang++-3.5' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020022
23 - os: linux
24 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010025 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020026 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010027 sources: *all_sources
28 packages: ['valgrind', 'clang-3.6']
29 env: COMPILER='clang++-3.6' VALGRIND=1
30
Martin Moened5d2bee2017-11-05 23:27:11 +010031# Travis's containers do not seem to have Clang 3.7 in apt, no matter what sources I add.
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010032# - os: linux
33# compiler: clang
34# addons:
35# apt:
36# sources: *all_sources
37# packages: ['valgrind', 'clang-3.7']
38# env: COMPILER='clang++-3.7' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020039
40 - os: linux
41 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010042 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020043 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010044 sources: *all_sources
45 packages: ['valgrind', 'clang-3.8']
46 env: COMPILER='clang++-3.8' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020047
48 - os: linux
49 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010050 addons:
51 apt:
52 sources: *all_sources
53 packages: ['clang-3.9', 'valgrind']
54 env: COMPILER='clang++-3.9' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020055
56 - os: linux
57 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010058 addons:
59 apt:
60 sources: *all_sources
61 packages: ['clang-4.0', 'valgrind']
62 env: COMPILER='clang++-4.0' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020063
64 - os: linux
65 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010066 addons:
67 apt:
68 sources: *all_sources
69 packages: ['clang-5.0', 'valgrind']
70 env: COMPILER='clang++-5.0' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020071
72 # 2/ Linux GCC Builds
73 - os: linux
74 compiler: gcc
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010075 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020076 apt:
77 sources: ['ubuntu-toolchain-r-test']
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010078 packages: ['valgrind', 'g++-4.8']
79 env: COMPILER='g++-4.8' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020080
81 - os: linux
82 compiler: gcc
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010083 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020084 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010085 sources: *all_sources
86 packages: ['valgrind', 'g++-4.9']
87 env: COMPILER='g++-4.9' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020088
89 - os: linux
90 compiler: gcc
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010091 addons:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020092 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +010093 sources: *all_sources
94 packages: ['valgrind', 'g++-5']
95 env: COMPILER='g++-5' VALGRIND=1
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +020096
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +010097 - os: linux
98 compiler: gcc
99 addons: &gcc6
100 apt:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100101 sources: *all_sources
102 packages: ['valgrind', 'g++-6']
103 env: COMPILER='g++-6' VALGRIND=1
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100104
105 - os: linux
106 compiler: gcc
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100107 addons: &gcc7
108 apt:
109 sources: *all_sources
110 packages: ['valgrind', 'g++-7']
111 env: COMPILER='g++-7' VALGRIND=1
112
Martin Moened5d2bee2017-11-05 23:27:11 +0100113 - os: linux
114 compiler: gcc
115 addons: *gcc7
116 env: COMPILER='g++-7' ENV_NO_SELFTEST=1 ENV_BUILD_EXAMPLES=1
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100117
Martin Hořeňovskýb2dd48f2017-11-05 12:46:04 +0100118 # 3b/ Linux C++14 Clang builds
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100119 - os: linux
120 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100121 addons:
122 apt:
123 packages: ['clang-3.8', 'valgrind', 'libstdc++-6-dev']
Martin Hořeňovskýb2dd48f2017-11-05 12:46:04 +0100124 sources:
125 - ubuntu-toolchain-r-test
126 - llvm-toolchain-trusty
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100127 env: COMPILER='clang++-3.8' CPP14=1 VALGRIND=1
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100128
129 - os: linux
130 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100131 addons:
132 apt:
133 sources: *all_sources
134 packages: ['clang-3.9', 'valgrind', 'libstdc++-6-dev']
135 env: COMPILER='clang++-3.9' CPP14=1 VALGRIND=1
136
137 - os: linux
138 compiler: clang
139 addons:
140 apt:
141 sources: *all_sources
142 packages: ['clang-4.0', 'valgrind', 'libstdc++-6-dev']
143 env: COMPILER='clang++-4.0' CPP14=1 VALGRIND=1
144
145 - os: linux
146 compiler: clang
147 addons:
148 apt:
149 sources: *all_sources
150 packages: ['clang-5.0', 'valgrind', 'libstdc++-6-dev']
151 env: COMPILER='clang++-5.0' CPP14=1 VALGRIND=1
152
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100153
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200154 # 4a/ Linux C++14 GCC builds
155 - os: linux
156 compiler: gcc
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200157 addons: *gcc6
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100158 env: COMPILER='g++-6' CPP14=1 VALGRIND=1
Martin Hořeňovskýa5ce57b2017-02-07 11:56:34 +0100159
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200160 - os: linux
161 compiler: gcc
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100162 addons: *gcc7
163 env: COMPILER='g++-7' CPP14=1 VALGRIND=1
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200164
Martin Hořeňovský417b2bc2017-04-20 22:47:05 +0200165 # 5/ OSX Clang Builds
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200166 - os: osx
Martin Hořeňovskýa600bfe2017-02-01 21:01:14 +0100167 osx_image: xcode7.3
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200168 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100169 env: COMPILER='clang++'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200170
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200171 - os: osx
Phil Nash1c9a6ca2016-09-27 11:20:33 +0100172 osx_image: xcode8
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200173 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100174 env: COMPILER='clang++'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200175
176 - os: osx
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100177 osx_image: xcode9
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200178 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100179 env: COMPILER='clang++'
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200180
Martin Hořeňovský7869e5b2017-04-20 22:52:41 +0200181 - os: osx
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100182 osx_image: xcode9.1
Martin Hořeňovský7869e5b2017-04-20 22:52:41 +0200183 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100184 env: COMPILER='clang++'
Martin Hořeňovský7869e5b2017-04-20 22:52:41 +0200185
186 - os: osx
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100187 osx_image: xcode9.1
Martin Hořeňovský7869e5b2017-04-20 22:52:41 +0200188 compiler: clang
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100189 env: COMPILER='clang++' USE_CPP14=1
Kostace441a92013-08-05 12:40:33 +0200190
191install:
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200192 - DEPS_DIR="${TRAVIS_BUILD_DIR}/deps"
193 - mkdir -p ${DEPS_DIR} && cd ${DEPS_DIR}
194 - |
195 if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then
196 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 +0100197 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 +0200198 export PATH=${DEPS_DIR}/cmake/bin:${PATH}
199 elif [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
Martin Hořeňovskýa49af462017-04-20 22:50:07 +0200200 which cmake || brew install cmake
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200201 fi
202
203before_script:
204 - export CXX=${COMPILER}
205 - cd ${TRAVIS_BUILD_DIR}
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100206 # Only run valgrind in debug build
Martin Moened5d2bee2017-11-05 23:27:11 +0100207 - cmake -H. -BBuild-Debug -DCMAKE_BUILD_TYPE=Debug -Wdev -DUSE_CPP14=${CPP14} -DUSE_VALGRIND=${VALGRIND} -DNO_SELFTEST=${ENV_NO_SELFTEST} -DBUILD_EXAMPLES=${ENV_BUILD_EXAMPLES}
208 - cmake -H. -BBuild-Release -DCMAKE_BUILD_TYPE=Release -Wdev -DUSE_CPP14=${CPP14} -DNO_SELFTEST=${ENV_NO_SELFTEST} -DBUILD_EXAMPLES=${ENV_BUILD_EXAMPLES}
Kostace441a92013-08-05 12:40:33 +0200209
210script:
Martin Hořeňovskýa20b2862017-11-05 12:46:04 +0100211 - cd Build-Debug
212 - make -j 2
213 - ctest -V -j 2
214 - cd ../Build-Release
Daniel J. Hofmanne904aa72015-10-06 12:28:18 +0200215 - make -j 2
216 - ctest -V -j 2