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++
27      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
28
29    - os: linux
30      compiler: g++-4.4
31      env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98
32      addons:
33        apt:
34          packages:
35            - g++-4.4
36          sources:
37            - ubuntu-toolchain-r-test
38
39    - os: linux
40      compiler: g++-4.6
41      env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
42      addons:
43        apt:
44          packages:
45            - g++-4.6
46          sources:
47            - ubuntu-toolchain-r-test
48
49    - os: linux
50      compiler: g++-4.7
51      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
52      addons:
53        apt:
54          packages:
55            - g++-4.7
56          sources:
57            - ubuntu-toolchain-r-test
58
59    - os: linux
60      compiler: g++-4.8
61      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
62      addons:
63        apt:
64          packages:
65            - g++-4.8
66          sources:
67            - ubuntu-toolchain-r-test
68    - os: linux
69      compiler: g++-4.9
70      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
71      addons:
72        apt:
73          packages:
74            - g++-4.9
75          sources:
76            - ubuntu-toolchain-r-test
77
78    - os: linux
79      compiler: g++-5
80      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
81      addons:
82        apt:
83          packages:
84            - g++-5
85          sources:
86            - ubuntu-toolchain-r-test
87
88    - os: linux
89      compiler: g++-6
90      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
91      addons:
92        apt:
93          packages:
94            - g++-6
95          sources:
96            - ubuntu-toolchain-r-test
97
98    - os: linux
99      dist: trusty
100      compiler: g++-7
101      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
102      addons:
103        apt:
104          packages:
105            - g++-7
106          sources:
107            - ubuntu-toolchain-r-test
108
109    - os: linux
110      compiler: g++-8
111      env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
112      addons:
113        apt:
114          packages:
115            - g++-8
116          sources:
117            - ubuntu-toolchain-r-test
118
119    - os: linux
120      compiler: g++-9
121      env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17
122      addons:
123        apt:
124          packages:
125            - g++-9
126          sources:
127            - ubuntu-toolchain-r-test
128
129    - os: linux
130      dist: bionic
131      compiler: g++-10
132      env: TOOLSET=gcc COMPILER=g++-10 CXXSTD=03,11,14,17,2a
133      addons:
134        apt:
135          packages:
136            - g++-10
137          sources:
138            - ubuntu-toolchain-r-test
139
140    - os: linux
141      compiler: clang++
142      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
143
144    - os: linux
145      dist: trusty
146      compiler: /usr/bin/clang++
147      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
148      addons:
149        apt:
150          packages:
151            - clang-3.3
152
153    - os: linux
154      dist: trusty
155      compiler: /usr/bin/clang++
156      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
157      addons:
158        apt:
159          packages:
160            - clang-3.4
161
162    - os: linux
163      compiler: clang++-3.5
164      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
165      addons:
166        apt:
167          packages:
168            - clang-3.5
169          sources:
170            - ubuntu-toolchain-r-test
171
172    - os: linux
173      compiler: clang++-3.6
174      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
175      addons:
176        apt:
177          packages:
178            - clang-3.6
179          sources:
180            - ubuntu-toolchain-r-test
181
182    - os: linux
183      compiler: clang++-3.7
184      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
185      addons:
186        apt:
187          packages:
188            - clang-3.7
189          sources:
190            - ubuntu-toolchain-r-test
191
192    - os: linux
193      compiler: clang++-3.8
194      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
195      addons:
196        apt:
197          packages:
198            - clang-3.8
199          sources:
200            - ubuntu-toolchain-r-test
201
202    - os: linux
203      compiler: clang++-3.9
204      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
205      addons:
206        apt:
207          packages:
208            - clang-3.9
209          sources:
210            - ubuntu-toolchain-r-test
211
212    - os: linux
213      compiler: clang++-4.0
214      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
215      addons:
216        apt:
217          packages:
218            - clang-4.0
219          sources:
220            - ubuntu-toolchain-r-test
221
222    - os: linux
223      compiler: clang++-5.0
224      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
225      addons:
226        apt:
227          packages:
228            - clang-5.0
229          sources:
230            - ubuntu-toolchain-r-test
231
232    - os: linux
233      compiler: clang++-6.0
234      env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17
235      addons:
236        apt:
237          packages:
238            - clang-6.0
239          sources:
240            - ubuntu-toolchain-r-test
241
242    - os: linux
243      compiler: clang++-7
244      env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17
245      addons:
246        apt:
247          packages:
248            - clang-7
249          sources:
250            - ubuntu-toolchain-r-test
251            - llvm-toolchain-xenial-7
252
253    - os: linux
254      compiler: clang++-8
255      env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17
256      addons:
257        apt:
258          packages:
259            - clang-8
260          sources:
261            - ubuntu-toolchain-r-test
262            - llvm-toolchain-xenial-8
263
264    - os: linux
265      compiler: clang++-9
266      env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a
267      addons:
268        apt:
269          packages:
270            - clang-9
271          sources:
272            - ubuntu-toolchain-r-test
273            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
274              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
275
276    - os: linux
277      compiler: clang++-10
278      env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,2a
279      addons:
280        apt:
281          packages:
282            - clang-10
283          sources:
284            - ubuntu-toolchain-r-test
285            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-10 main'
286              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
287
288    - os: linux
289      dist: trusty
290      compiler: clang++-libc++
291      env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
292      addons:
293        apt:
294          packages:
295            - libc++-dev
296
297    - os: osx
298      compiler: clang++
299      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
300
301    - os: linux
302      env: CMAKE_TEST=1
303      script:
304        - mkdir __build__ && cd __build__
305        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor ..
306        - ctest --output-on-failure -R boost_preprocessor
307
308    - os: linux
309      env: CMAKE_SUBDIR_TEST=1
310      install: true
311      script:
312      - cd test/cmake_subdir_test && mkdir __build__ && cd __build__
313      - cmake ..
314      - cmake --build .
315      - cmake --build . --target check
316
317    - os: linux
318      env: CMAKE_INSTALL_TEST=1
319      script:
320        - mkdir __build__ && cd __build__
321        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=preprocessor -DCMAKE_INSTALL_PREFIX=~/.local ..
322        - cmake --build . --target install
323        - cd ../libs/preprocessor/test/cmake_install_test && mkdir __build__ && cd __build__
324        - cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
325        - cmake --build .
326        - cmake --build . --target check
327
328install:
329  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
330  - cd ..
331  - git clone -b $BOOST_BRANCH --depth 1 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/preprocessor
335  - python tools/boostdep/depinst/depinst.py preprocessor
336  - ./bootstrap.sh
337  - ./b2 headers
338
339script:
340  - |-
341    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
342  - ./b2 libs/preprocessor/test -j 3 toolset=$TOOLSET cxxstd=$CXXSTD $ADDRMD
343
344notifications:
345  email:
346    on_success: always
347