• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2016-2020 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,14 ADDRMD=32,64
28      addons:
29        apt:
30          packages:
31            - g++-multilib
32
33    - os: linux
34      arch: arm64
35      compiler: g++
36      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11,14 ADDRMD=32,64
37
38    - os: linux
39      arch: ppc64le
40      compiler: g++
41      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11,14
42
43    - os: linux
44      arch: s390x
45      compiler: g++
46      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11,14 ADDRMD=32,64
47
48    - os: linux
49      compiler: g++-4.4
50      env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
51      addons:
52        apt:
53          packages:
54            - g++-4.4
55          sources:
56            - ubuntu-toolchain-r-test
57
58    - os: linux
59      compiler: g++-4.6
60      env: TOOLSET=gcc COMPILER=g++-4.6 CXXSTD=03,0x
61      addons:
62        apt:
63          packages:
64            - g++-4.6
65          sources:
66            - ubuntu-toolchain-r-test
67
68    - os: linux
69      compiler: g++-4.7
70      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
71      addons:
72        apt:
73          packages:
74            - g++-4.7
75          sources:
76            - ubuntu-toolchain-r-test
77
78    - os: linux
79      compiler: g++-4.8
80      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=03,11
81      addons:
82        apt:
83          packages:
84            - g++-4.8
85          sources:
86            - ubuntu-toolchain-r-test
87    - os: linux
88      compiler: g++-4.9
89      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=03,11
90      addons:
91        apt:
92          packages:
93            - g++-4.9
94          sources:
95            - ubuntu-toolchain-r-test
96
97    - os: linux
98      compiler: g++-5
99      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
100      addons:
101        apt:
102          packages:
103            - g++-5
104          sources:
105            - ubuntu-toolchain-r-test
106
107    - os: linux
108      compiler: g++-6
109      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
110      addons:
111        apt:
112          packages:
113            - g++-6
114          sources:
115            - ubuntu-toolchain-r-test
116
117    - os: linux
118      compiler: g++-7
119      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
120      addons:
121        apt:
122          packages:
123            - g++-7
124          sources:
125            - ubuntu-toolchain-r-test
126
127    - os: linux
128      compiler: g++-8
129      env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17
130      addons:
131        apt:
132          packages:
133            - g++-8
134          sources:
135            - ubuntu-toolchain-r-test
136
137    - os: linux
138      compiler: g++-9
139      env: TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a
140      addons:
141        apt:
142          packages:
143            - g++-9
144          sources:
145            - ubuntu-toolchain-r-test
146
147    - os: linux
148      compiler: g++-9
149      env: UBSAN=1 TOOLSET=gcc COMPILER=g++-9 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
150      addons:
151        apt:
152          packages:
153            - g++-9
154          sources:
155            - ubuntu-toolchain-r-test
156
157    - os: linux
158      compiler: clang++
159      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
160
161    - os: linux
162      dist: trusty
163      compiler: /usr/bin/clang++
164      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
165      addons:
166        apt:
167          packages:
168            - clang-3.3
169
170    - os: linux
171      dist: trusty
172      compiler: /usr/bin/clang++
173      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
174      addons:
175        apt:
176          packages:
177            - clang-3.4
178
179    - os: linux
180      compiler: clang++-3.5
181      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
182      addons:
183        apt:
184          packages:
185            - clang-3.5
186          sources:
187            - ubuntu-toolchain-r-test
188
189    - os: linux
190      compiler: clang++-3.6
191      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
192      addons:
193        apt:
194          packages:
195            - clang-3.6
196          sources:
197            - ubuntu-toolchain-r-test
198
199    - os: linux
200      compiler: clang++-3.7
201      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
202      addons:
203        apt:
204          packages:
205            - clang-3.7
206          sources:
207            - ubuntu-toolchain-r-test
208
209    - os: linux
210      compiler: clang++-3.8
211      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
212      addons:
213        apt:
214          packages:
215            - clang-3.8
216          sources:
217            - ubuntu-toolchain-r-test
218
219    - os: linux
220      compiler: clang++-3.9
221      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
222      addons:
223        apt:
224          packages:
225            - clang-3.9
226          sources:
227            - ubuntu-toolchain-r-test
228
229    - os: linux
230      compiler: clang++-4.0
231      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
232      addons:
233        apt:
234          packages:
235            - clang-4.0
236          sources:
237            - ubuntu-toolchain-r-test
238
239    - os: linux
240      compiler: clang++-5.0
241      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
242      addons:
243        apt:
244          packages:
245            - clang-5.0
246          sources:
247            - ubuntu-toolchain-r-test
248
249    - os: linux
250      compiler: clang++-6.0
251      env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17
252      addons:
253        apt:
254          packages:
255            - clang-6.0
256          sources:
257            - ubuntu-toolchain-r-test
258
259    - os: linux
260      compiler: clang++-7
261      env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a
262      addons:
263        apt:
264          packages:
265            - clang-7
266          sources:
267            - ubuntu-toolchain-r-test
268            - llvm-toolchain-xenial-7
269
270    - os: linux
271      compiler: clang++-8
272      env: TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a
273      addons:
274        apt:
275          packages:
276            - clang-8
277          sources:
278            - ubuntu-toolchain-r-test
279            - llvm-toolchain-xenial-8
280
281    - os: linux
282      dist: xenial
283      compiler: clang++-9
284      env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a
285      addons:
286        apt:
287          packages:
288            - clang-9
289          sources:
290            - ubuntu-toolchain-r-test
291            - sourceline: 'deb https://apt.llvm.org/xenial/ llvm-toolchain-xenial-9 main'
292              key_url: 'https://apt.llvm.org/llvm-snapshot.gpg.key'
293
294    - os: linux
295      compiler: clang++-8
296      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-8 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
297      addons:
298        apt:
299          packages:
300            - clang-8
301          sources:
302            - ubuntu-toolchain-r-test
303            - llvm-toolchain-xenial-8
304
305    - os: linux
306      dist: trusty
307      compiler: clang++-libc++
308      env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
309      addons:
310        apt:
311          packages:
312            - libc++-dev
313
314    - os: linux
315      dist: trusty
316      compiler: clang++-libc++
317      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
318      addons:
319        apt:
320          packages:
321            - libc++-dev
322
323    - os: osx
324      osx_image: xcode7.3
325      compiler: clang++
326      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z ADDRMD=32,64
327
328    - os: osx
329      osx_image: xcode8.3
330      compiler: clang++
331      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z ADDRMD=32,64
332
333    - os: osx
334      osx_image: xcode9.4
335      compiler: clang++
336      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z ADDRMD=32,64
337
338    - os: osx
339      osx_image: xcode10.3
340      compiler: clang++
341      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
342
343    - os: osx
344      osx_image: xcode11.3
345      compiler: clang++
346      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
347
348    - os: osx
349      compiler: clang++
350      env: UBSAN=1 TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z ADDRMD=32,64 UBSAN_OPTIONS=print_stacktrace=1
351
352    - os: linux
353      env: CMAKE_TEST=1
354      script:
355        - mkdir __build__ && cd __build__
356        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=endian ..
357        - ctest --output-on-failure -R boost_endian
358
359    - os: linux
360      env: CMAKE_SUBDIR_TEST=1
361      install:
362        - BOOST_BRANCH=develop
363        - if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi
364        - git clone -b $BOOST_BRANCH https://github.com/boostorg/assert.git ../assert
365        - git clone -b $BOOST_BRANCH https://github.com/boostorg/config.git ../config
366        - git clone -b $BOOST_BRANCH https://github.com/boostorg/core.git ../core
367        - git clone -b $BOOST_BRANCH https://github.com/boostorg/static_assert.git ../static_assert
368        - git clone -b $BOOST_BRANCH https://github.com/boostorg/type_traits.git ../type_traits
369      script:
370      - cd test/cmake_subdir_test && mkdir __build__ && cd __build__
371      - cmake ..
372      - cmake --build .
373      - cmake --build . --target check
374
375    - os: linux
376      env: CMAKE_INSTALL_TEST=1
377      script:
378        - pip install --user cmake
379        - mkdir __build__ && cd __build__
380        - cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=endian -DCMAKE_INSTALL_PREFIX=~/.local ..
381        - cmake --build . --target install
382        - cd ../libs/endian/test/cmake_install_test && mkdir __build__ && cd __build__
383        - cmake -DCMAKE_INSTALL_PREFIX=~/.local ..
384        - cmake --build .
385        - cmake --build . --target check
386
387install:
388  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
389  - cd ..
390  - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
391  - cd boost-root
392  - git submodule update --init tools/boostdep
393  - cp -r $TRAVIS_BUILD_DIR/* libs/endian
394  - python tools/boostdep/depinst/depinst.py endian
395  - ./bootstrap.sh
396  - ./b2 headers
397
398script:
399  - |-
400    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
401  - ./b2 -j3 libs/endian/test toolset=$TOOLSET cxxstd=$CXXSTD variant=debug,release ${ADDRMD:+address-model=$ADDRMD} ${UBSAN:+cxxflags=-fsanitize=undefined cxxflags=-fno-sanitize-recover=undefined linkflags=-fsanitize=undefined debug-symbols=on} ${LINKFLAGS:+linkflags=$LINKFLAGS}
402
403notifications:
404  email:
405    on_success: always
406