1# Copyright 2016-2019 Peter Dimov
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
4
5language: cpp
6
7dist: xenial
8
9branches:
10  only:
11    - master
12    - develop
13    - /feature\/.*/
14
15env:
16  matrix:
17    - BOGUS_JOB=true
18
19matrix:
20
21  exclude:
22    - env: BOGUS_JOB=true
23
24  include:
25    - os: linux
26      compiler: g++-4.4
27      env: TOOLSET=gcc CXXSTD=98,0x
28      addons:
29        apt:
30          packages:
31            - g++-4.4
32          sources:
33            - ubuntu-toolchain-r-test
34
35    - os: linux
36      compiler: g++-4.6
37      env: TOOLSET=gcc CXXSTD=03,0x
38      addons:
39        apt:
40          packages:
41            - g++-4.6
42          sources:
43            - ubuntu-toolchain-r-test
44
45    - os: linux
46      compiler: g++-4.7
47      env: TOOLSET=gcc CXXSTD=03,11
48      addons:
49        apt:
50          packages:
51            - g++-4.7
52          sources:
53            - ubuntu-toolchain-r-test
54
55    - os: linux
56      compiler: g++-4.8
57      env: TOOLSET=gcc CXXSTD=03,11
58      addons:
59        apt:
60          packages:
61            - g++-4.8
62          sources:
63            - ubuntu-toolchain-r-test
64    - os: linux
65      compiler: g++-4.9
66      env: TOOLSET=gcc CXXSTD=03,11
67      addons:
68        apt:
69          packages:
70            - g++-4.9
71          sources:
72            - ubuntu-toolchain-r-test
73
74    - os: linux
75      compiler: g++-5
76      env: TOOLSET=gcc CXXSTD=03,11,14,1z
77      addons:
78        apt:
79          packages:
80            - g++-5
81          sources:
82            - ubuntu-toolchain-r-test
83
84    - os: linux
85      compiler: g++-6
86      env: TOOLSET=gcc CXXSTD=03,11,14,1z
87      addons:
88        apt:
89          packages:
90            - g++-6
91          sources:
92            - ubuntu-toolchain-r-test
93
94    - os: linux
95      compiler: g++-7
96      env: TOOLSET=gcc CXXSTD=03,11,14,17
97      addons:
98        apt:
99          packages:
100            - g++-7
101          sources:
102            - ubuntu-toolchain-r-test
103
104    - os: linux
105      compiler: g++-8
106      env: TOOLSET=gcc CXXSTD=03,11,14,17,2a
107      addons:
108        apt:
109          packages:
110            - g++-8
111          sources:
112            - ubuntu-toolchain-r-test
113
114    - os: linux
115      compiler: g++-9
116      env: TOOLSET=gcc CXXSTD=03,11,14,17,2a
117      addons:
118        apt:
119          packages:
120            - g++-9
121          sources:
122            - ubuntu-toolchain-r-test
123
124    - os: linux
125      dist: bionic
126      compiler: g++-10
127      env: TOOLSET=gcc CXXSTD=03,11,14,17,2a
128      addons:
129        apt:
130          packages:
131            - g++-10
132          sources:
133            - ubuntu-toolchain-r-test
134
135    - os: linux
136      compiler: g++-9
137      env: UBSAN=1 TOOLSET=gcc CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
138      addons:
139        apt:
140          packages:
141            - g++-9
142          sources:
143            - ubuntu-toolchain-r-test
144
145    - os: linux
146      dist: trusty
147      compiler: /usr/bin/clang++
148      env: TOOLSET=clang CXXSTD=03,11
149      addons:
150        apt:
151          packages:
152            - clang-3.3
153
154    - os: linux
155      dist: trusty
156      compiler: /usr/bin/clang++
157      env: TOOLSET=clang CXXSTD=03,11
158      addons:
159        apt:
160          packages:
161            - clang-3.4
162
163    - os: linux
164      compiler: clang++-3.5
165      env: TOOLSET=clang CXXSTD=03,11,14,1z
166      addons:
167        apt:
168          packages:
169            - clang-3.5
170          sources:
171            - ubuntu-toolchain-r-test
172
173    - os: linux
174      compiler: clang++-3.6
175      env: TOOLSET=clang CXXSTD=03,11,14,1z
176      addons:
177        apt:
178          packages:
179            - clang-3.6
180          sources:
181            - ubuntu-toolchain-r-test
182
183    - os: linux
184      compiler: clang++-3.7
185      env: TOOLSET=clang CXXSTD=03,11,14,1z
186      addons:
187        apt:
188          packages:
189            - clang-3.7
190          sources:
191            - ubuntu-toolchain-r-test
192
193    - os: linux
194      compiler: clang++-3.8
195      env: TOOLSET=clang CXXSTD=03,11,14,1z
196      addons:
197        apt:
198          packages:
199            - clang-3.8
200          sources:
201            - ubuntu-toolchain-r-test
202
203    - os: linux
204      compiler: clang++-3.9
205      env: TOOLSET=clang CXXSTD=03,11,14,1z
206      addons:
207        apt:
208          packages:
209            - clang-3.9
210          sources:
211            - ubuntu-toolchain-r-test
212
213    - os: linux
214      compiler: clang++-4.0
215      env: TOOLSET=clang CXXSTD=03,11,14,1z
216      addons:
217        apt:
218          packages:
219            - clang-4.0
220          sources:
221            - ubuntu-toolchain-r-test
222
223    - os: linux
224      compiler: clang++-5.0
225      env: TOOLSET=clang CXXSTD=03,11,14,1z
226      addons:
227        apt:
228          packages:
229            - clang-5.0
230          sources:
231            - ubuntu-toolchain-r-test
232
233    - os: linux
234      compiler: clang++-6.0
235      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
236      addons:
237        apt:
238          packages:
239            - clang-6.0
240          sources:
241            - ubuntu-toolchain-r-test
242
243    - os: linux
244      compiler: clang++-7
245      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
246      addons:
247        apt:
248          packages:
249            - clang-7
250          sources:
251            - ubuntu-toolchain-r-test
252            - llvm-toolchain-xenial-7
253
254    - os: linux
255      compiler: clang++-8
256      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
257      addons:
258        apt:
259          packages:
260            - clang-8
261          sources:
262            - ubuntu-toolchain-r-test
263            - llvm-toolchain-xenial-8
264
265    - os: linux
266      dist: xenial
267      compiler: clang++-9
268      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
269      addons:
270        apt:
271          packages:
272            - clang-9
273          sources:
274            - ubuntu-toolchain-r-test
275            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
276              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
277
278    - os: linux
279      dist: xenial
280      compiler: clang++-10
281      env: TOOLSET=clang CXXSTD=03,11,14,17,2a
282      addons:
283        apt:
284          packages:
285            - clang-10
286          sources:
287            - ubuntu-toolchain-r-test
288            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main'
289              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
290
291    - os: linux
292      compiler: clang++-8
293      env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
294      addons:
295        apt:
296          packages:
297            - clang-8
298          sources:
299            - ubuntu-toolchain-r-test
300            - llvm-toolchain-xenial-8
301
302    - os: linux
303      dist: trusty
304      compiler: clang++-libc++
305      env: TOOLSET=clang CXXSTD=03,11,14,1z
306      addons:
307        apt:
308          packages:
309            - libc++-dev
310
311    - os: linux
312      dist: trusty
313      compiler: clang++-libc++
314      env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
315      addons:
316        apt:
317          packages:
318            - libc++-dev
319
320    - os: osx
321      compiler: clang++
322      env: TOOLSET=clang CXXSTD=03,11,14,1z
323
324    - os: osx
325      compiler: clang++
326      env: UBSAN=1 TOOLSET=clang CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
327
328install:
329  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
330  - cd ..
331  - git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
332  - cd boost-root
333  - git submodule update --init tools/boostdep
334  - cp -r $TRAVIS_BUILD_DIR/* libs/function
335  - python tools/boostdep/depinst/depinst.py function
336  - ./bootstrap.sh
337  - ./b2 headers
338
339script:
340  - |-
341    echo "using $TOOLSET : : $TRAVIS_COMPILER ;" > ~/user-config.jam
342  - ./b2 -j3 libs/function/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined debug-symbols=on} ${LINKFLAGS:+linkflags=$LINKFLAGS}
343
344notifications:
345  email:
346    on_success: always
347