• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2016, 2017 Peter Dimov
2# Copyright 2019 Andrey Semashev
3# Distributed under the Boost Software License, Version 1.0.
4# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
5
6language: cpp
7
8sudo: false
9
10python: "2.7"
11
12branches:
13  only:
14    - master
15    - develop
16    - /feature\/.*/
17
18env:
19  matrix:
20    - BOGUS_JOB=true
21
22matrix:
23
24  exclude:
25    - env: BOGUS_JOB=true
26
27  include:
28# gcc, Linux
29# Note: gcc-4.4 in C++0x mode fails zip_iterator tests with std::tuple
30    - os: linux
31      dist: trusty
32      compiler: gcc-4.4
33      env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98
34      addons:
35        apt:
36          packages:
37            - g++-4.4
38          sources:
39            - ubuntu-toolchain-r-test
40
41    - os: linux
42      dist: trusty
43      compiler: gcc-4.6
44      env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
45      addons:
46        apt:
47          packages:
48            - g++-4.6
49          sources:
50            - ubuntu-toolchain-r-test
51
52    - os: linux
53      dist: trusty
54      compiler: gcc-4.7
55      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
56      addons:
57        apt:
58          packages:
59            - g++-4.7
60          sources:
61            - ubuntu-toolchain-r-test
62
63    - os: linux
64      dist: xenial
65      compiler: gcc-4.8
66      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
67      addons:
68        apt:
69          packages:
70            - g++-4.8
71          sources:
72            - ubuntu-toolchain-r-test
73
74    - os: linux
75      dist: xenial
76      compiler: gcc-4.9
77      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
78      addons:
79        apt:
80          packages:
81            - g++-4.9
82          sources:
83            - ubuntu-toolchain-r-test
84
85    - os: linux
86      dist: xenial
87      compiler: gcc-5
88      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
89      addons:
90        apt:
91          packages:
92            - g++-5
93          sources:
94            - ubuntu-toolchain-r-test
95
96    - os: linux
97      dist: xenial
98      compiler: gcc-6
99      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
100      addons:
101        apt:
102          packages:
103            - g++-6
104          sources:
105            - ubuntu-toolchain-r-test
106
107    - os: linux
108      dist: xenial
109      compiler: gcc-7
110      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
111      addons:
112        apt:
113          packages:
114            - g++-7
115          sources:
116            - ubuntu-toolchain-r-test
117
118    - os: linux
119      dist: xenial
120      compiler: gcc-8
121      env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17,2a
122      addons:
123        apt:
124          packages:
125            - g++-8
126          sources:
127            - ubuntu-toolchain-r-test
128
129    - os: linux
130      dist: bionic
131      compiler: gcc-9
132      env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a
133      addons:
134        apt:
135          packages:
136            - g++-9
137          sources:
138            - sourceline: "ppa:ubuntu-toolchain-r/test"
139
140    - os: linux
141      dist: bionic
142      compiler: gcc-10
143      env: TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,20
144      addons:
145        apt:
146          packages:
147            - g++-10
148          sources:
149            - sourceline: "ppa:ubuntu-toolchain-r/test"
150
151    - os: linux
152      dist: bionic
153      compiler: gcc-UBSAN
154      env: UBSAN=1 TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
155      addons:
156        apt:
157          packages:
158            - g++-10
159          sources:
160            - sourceline: "ppa:ubuntu-toolchain-r/test"
161
162# clang, Linux
163    - os: linux
164      dist: trusty
165      compiler: clang-3.5
166      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
167      addons:
168        apt:
169          packages:
170            - clang-3.5
171            - libstdc++-4.9-dev
172          sources:
173            - ubuntu-toolchain-r-test
174            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.5 main"
175              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
176
177    - os: linux
178      dist: trusty
179      compiler: clang-3.6
180      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
181      addons:
182        apt:
183          packages:
184            - clang-3.6
185            - libstdc++-5-dev
186          sources:
187            - ubuntu-toolchain-r-test
188            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.6 main"
189              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
190
191    - os: linux
192      dist: trusty
193      compiler: clang-3.7
194      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
195      addons:
196        apt:
197          packages:
198            - clang-3.7
199            - libstdc++-5-dev
200          sources:
201            - ubuntu-toolchain-r-test
202            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.7 main"
203              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
204
205    - os: linux
206      dist: xenial
207      compiler: clang-3.8
208      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
209      addons:
210        apt:
211          packages:
212            - clang-3.8
213            - libstdc++-6-dev
214          sources:
215            - ubuntu-toolchain-r-test
216            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.8 main"
217              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
218
219    - os: linux
220      dist: xenial
221      compiler: clang-3.9
222      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
223      addons:
224        apt:
225          packages:
226            - clang-3.9
227            - libstdc++-6-dev
228          sources:
229            - ubuntu-toolchain-r-test
230            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main"
231              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
232
233    - os: linux
234      dist: xenial
235      compiler: clang-4
236      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
237      addons:
238        apt:
239          packages:
240            - clang-4.0
241            - libstdc++-6-dev
242          sources:
243            - ubuntu-toolchain-r-test
244            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main"
245              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
246
247    - os: linux
248      dist: xenial
249      compiler: clang-5
250      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
251      addons:
252        apt:
253          packages:
254            - clang-5.0
255            - libstdc++-7-dev
256          sources:
257            - ubuntu-toolchain-r-test
258            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main"
259              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
260
261    - os: linux
262      dist: xenial
263      compiler: clang-6
264      env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17,2a
265      addons:
266        apt:
267          packages:
268            - clang-6.0
269            - libstdc++-8-dev
270          sources:
271            - ubuntu-toolchain-r-test
272            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main"
273              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
274
275    - os: linux
276      dist: xenial
277      compiler: clang-7
278      env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a
279      addons:
280        apt:
281          packages:
282            - clang-7
283            - libstdc++-8-dev
284          sources:
285            - ubuntu-toolchain-r-test
286            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
287              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
288
289    - os: linux
290      dist: xenial
291      compiler: clang-8
292      env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a
293      addons:
294        apt:
295          packages:
296            - clang-8
297            - libstdc++-8-dev
298          sources:
299            - ubuntu-toolchain-r-test
300            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main"
301              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
302
303    - os: linux
304      dist: xenial
305      compiler: clang-9
306      env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a
307      addons:
308        apt:
309          packages:
310            - clang-9
311            - libstdc++-9-dev
312          sources:
313            - sourceline: "ppa:ubuntu-toolchain-r/test"
314            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main"
315              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
316
317    - os: linux
318      dist: xenial
319      compiler: clang-10
320      env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20
321      addons:
322        apt:
323          packages:
324            - clang-10
325            - libstdc++-9-dev
326          sources:
327            - sourceline: "ppa:ubuntu-toolchain-r/test"
328            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main"
329              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
330
331    - os: linux
332      dist: xenial
333      compiler: clang-UBSAN
334      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1
335      addons:
336        apt:
337          packages:
338            - clang-10
339            - libstdc++-9-dev
340          sources:
341            - sourceline: "ppa:ubuntu-toolchain-r/test"
342            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main"
343              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
344
345    - os: linux
346      dist: xenial
347      compiler: clang-libc++
348      env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 CXXFLAGS="-stdlib=libc++" LINKFLAGS="-stdlib=libc++"
349      addons:
350        apt:
351          packages:
352            - clang-10
353            - libc++-10-dev
354            - libc++abi-10-dev
355          sources:
356            - sourceline: "ppa:ubuntu-toolchain-r/test"
357            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main"
358              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
359
360    - os: linux
361      dist: xenial
362      compiler: clang-libc++-UBSAN
363      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1 CXXFLAGS="-stdlib=libc++" LINKFLAGS="-stdlib=libc++"
364      addons:
365        apt:
366          packages:
367            - clang-10
368            - libc++-10-dev
369            - libc++abi-10-dev
370          sources:
371            - sourceline: "ppa:ubuntu-toolchain-r/test"
372            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main"
373              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
374
375# clang, OS X
376# OS X builds are slow on Travis CI
377#    - os: osx
378#      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
379#      osx_image: xcode9.4
380#
381#    - os: osx
382#      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
383#      osx_image: xcode10.3
384
385    - os: osx
386      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17
387      osx_image: xcode11.2
388
389install:
390  - GIT_FETCH_JOBS=8
391  - BOOST_BRANCH=develop
392  - if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi
393  - cd ..
394  - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
395  - cd boost-root
396  - git submodule init tools/build
397  - git submodule init tools/boostdep
398  - git submodule init tools/boost_install
399  - git submodule init libs/headers
400  - git submodule init libs/config
401  - git submodule update --jobs $GIT_FETCH_JOBS
402  - cp -r $TRAVIS_BUILD_DIR/* libs/iterator
403  - python tools/boostdep/depinst/depinst.py --git_args "--jobs $GIT_FETCH_JOBS" iterator
404  - ./bootstrap.sh
405  - ./b2 headers
406
407script:
408  - |-
409    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
410  - BUILD_JOBS=`(nproc || sysctl -n hw.ncpu) 2> /dev/null`
411  - ./b2 -j $BUILD_JOBS libs/iterator/test toolset=$TOOLSET cxxstd=$CXXSTD ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined define=UBSAN=1 debug-symbols=on visibility=global} ${CXXFLAGS:+cxxflags="$CXXFLAGS"} ${LINKFLAGS:+linkflags="$LINKFLAGS"}
412
413notifications:
414  email:
415    on_success: always
416