1# Copyright 2016 Edward Diener
2# Copyright 2017 Cromwell D. Enage
3# Copyright 2021 Andrey Semashev
4# Distributed under the Boost Software License, Version 1.0.
5# (See accompanying file LICENSE_1_0.txt or copy at
6# http://boost.org/LICENSE_1_0.txt)
7
8language: cpp
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    - os: linux
30      dist: trusty
31      compiler: gcc-4.4
32      env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
33      addons:
34        apt:
35          packages:
36            - g++-4.4
37          sources:
38            - ubuntu-toolchain-r-test
39
40    - os: linux
41      dist: trusty
42      compiler: gcc-4.6
43      env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
44      addons:
45        apt:
46          packages:
47            - g++-4.6
48          sources:
49            - ubuntu-toolchain-r-test
50
51    - os: linux
52      dist: trusty
53      compiler: gcc-4.7
54      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
55      addons:
56        apt:
57          packages:
58            - g++-4.7
59          sources:
60            - ubuntu-toolchain-r-test
61
62    - os: linux
63      dist: xenial
64      compiler: gcc-4.8
65      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
66      addons:
67        apt:
68          packages:
69            - g++-4.8
70          sources:
71            - ubuntu-toolchain-r-test
72
73    - os: linux
74      dist: xenial
75      compiler: gcc-4.9
76      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
77      addons:
78        apt:
79          packages:
80            - g++-4.9
81          sources:
82            - ubuntu-toolchain-r-test
83
84    - os: linux
85      dist: xenial
86      compiler: gcc-5
87      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14
88      addons:
89        apt:
90          packages:
91            - g++-5
92          sources:
93            - ubuntu-toolchain-r-test
94
95    - os: linux
96      dist: xenial
97      compiler: gcc-6
98      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
99      addons:
100        apt:
101          packages:
102            - g++-6
103          sources:
104            - ubuntu-toolchain-r-test
105
106    - os: linux
107      dist: xenial
108      compiler: gcc-6
109      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
110      addons:
111        apt:
112          packages:
113            - g++-6
114          sources:
115            - ubuntu-toolchain-r-test
116
117    - os: linux
118      dist: xenial
119      compiler: gcc-7
120      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
121      addons:
122        apt:
123          packages:
124            - g++-7
125          sources:
126            - ubuntu-toolchain-r-test
127
128    - os: linux
129      dist: xenial
130      compiler: gcc-7
131      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 CXXSTD_DIALECT=cxxstd-dialect=gnu
132      addons:
133        apt:
134          packages:
135            - g++-7
136          sources:
137            - ubuntu-toolchain-r-test
138
139    - os: linux
140      dist: xenial
141      compiler: gcc-8
142      env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17,2a
143      addons:
144        apt:
145          packages:
146            - g++-8
147          sources:
148            - ubuntu-toolchain-r-test
149
150    - os: linux
151      dist: bionic
152      compiler: gcc-9
153      env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a
154      addons:
155        apt:
156          packages:
157            - g++-9
158          sources:
159            - sourceline: "ppa:ubuntu-toolchain-r/test"
160
161    - os: linux
162      dist: focal
163      compiler: gcc-10
164      env: TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,20
165      addons:
166        apt:
167          packages:
168            - g++-10
169          sources:
170            - sourceline: "ppa:ubuntu-toolchain-r/test"
171
172# clang, Linux
173    - os: linux
174      dist: trusty
175      compiler: clang-3.5
176      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11
177      addons:
178        apt:
179          packages:
180            - clang-3.5
181          sources:
182            - ubuntu-toolchain-r-test
183            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.5 main"
184              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
185
186    - os: linux
187      dist: trusty
188      compiler: clang-3.6
189      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11
190      addons:
191        apt:
192          packages:
193            - clang-3.6
194          sources:
195            - ubuntu-toolchain-r-test
196            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.6 main"
197              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
198
199    - os: linux
200      dist: trusty
201      compiler: clang-3.7
202      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11
203      addons:
204        apt:
205          packages:
206            - clang-3.7
207          sources:
208            - ubuntu-toolchain-r-test
209            - sourceline: "deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-3.7 main"
210              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
211
212    - os: linux
213      dist: xenial
214      compiler: clang-3.8
215      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
216      addons:
217        apt:
218          packages:
219            - clang-3.8
220          sources:
221            - ubuntu-toolchain-r-test
222            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.8 main"
223              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
224
225    - os: linux
226      dist: xenial
227      compiler: clang-3.9
228      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
229      addons:
230        apt:
231          packages:
232            - clang-3.9
233          sources:
234            - ubuntu-toolchain-r-test
235            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-3.9 main"
236              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
237
238    - os: linux
239      dist: xenial
240      compiler: clang-4
241      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
242      addons:
243        apt:
244          packages:
245            - clang-4.0
246          sources:
247            - ubuntu-toolchain-r-test
248            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-4.0 main"
249              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
250
251    - os: linux
252      dist: xenial
253      compiler: clang-5
254      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
255      addons:
256        apt:
257          packages:
258            - clang-5.0
259          sources:
260            - ubuntu-toolchain-r-test
261            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-5.0 main"
262              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
263
264    - os: linux
265      dist: xenial
266      compiler: clang-6
267      env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,1z,2a
268      addons:
269        apt:
270          packages:
271            - clang-6.0
272            - libc6-dbg
273            - libc++-dev
274            - libstdc++-8-dev
275          sources:
276            - ubuntu-toolchain-r-test
277            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-6.0 main"
278              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
279
280    - os: linux
281      dist: xenial
282      compiler: clang-7
283      env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=14,1z,2a
284      addons:
285        apt:
286          packages:
287            - clang-7
288            - libc6-dbg
289            - libc++-dev
290            - libstdc++-8-dev
291          sources:
292            - ubuntu-toolchain-r-test
293            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main"
294              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
295
296    - os: linux
297      dist: xenial
298      compiler: clang-8
299      env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=14,1z,2a
300      addons:
301        apt:
302          packages:
303            - clang-8
304            - libc6-dbg
305            - libc++-dev
306            - libstdc++-8-dev
307          sources:
308            - ubuntu-toolchain-r-test
309            - sourceline: "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-8 main"
310              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
311
312    - os: linux
313      dist: bionic
314      compiler: clang-9
315      env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=14,17,2a
316      addons:
317        apt:
318          packages:
319            - clang-9
320            - libstdc++-9-dev
321          sources:
322            - sourceline: "ppa:ubuntu-toolchain-r/test"
323            - sourceline: "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main"
324              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
325
326    - os: linux
327      dist: focal
328      compiler: clang-10
329      env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=14,17,20
330      addons:
331        apt:
332          packages:
333            - clang-10
334            - libstdc++-9-dev
335          sources:
336            - sourceline: "ppa:ubuntu-toolchain-r/test"
337            - sourceline: "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main"
338              key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key"
339
340    - os: osx
341      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
342      osx_image: xcode7.3
343
344    - os: osx
345      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
346      osx_image: xcode8.3
347
348    - os: osx
349      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
350      osx_image: xcode9.4.1
351
352install:
353  - GIT_FETCH_JOBS=8
354  - BOOST_BRANCH=develop
355  - if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi
356  - cd ..
357  - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
358  - cd boost-root
359  - git submodule init tools/build
360  - git submodule init tools/boostdep
361  - git submodule init tools/boost_install
362  - git submodule init libs/headers
363  - git submodule init libs/config
364  - git submodule init libs/parameter_python
365  - git submodule update --jobs $GIT_FETCH_JOBS
366  - cp -r $TRAVIS_BUILD_DIR/* libs/parameter
367  - python tools/boostdep/depinst/depinst.py --git_args "--jobs $GIT_FETCH_JOBS" parameter
368  - ./bootstrap.sh
369  - ./b2 headers
370
371script:
372  - |-
373    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
374  - ./b2 --verbose-test libs/config/test//config_info toolset=$TOOLSET cxxstd=$CXXSTD || true
375  - BUILD_JOBS=`(nproc || sysctl -n hw.ncpu) 2> /dev/null`
376  - ./b2 -j $BUILD_JOBS libs/parameter/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT
377
378notifications:
379  email:
380    on_success: always
381