1# Copyright 2003-2019 Joaqu�n M L�pez Mu�oz.
2# Distributed under the Boost Software License, Version 1.0.
3# (See accompanying file LICENSE_1_0.txt or copy at
4# http://www.boost.org/LICENSE_1_0.txt)
5#
6# See http://www.boost.org/libs/multi_index for library home page.
7
8sudo: false
9
10language: cpp
11
12os: linux
13
14dist: trusty
15
16branches:
17  only:
18    - develop
19    - master
20
21env:
22  matrix:
23    - BOGUS_JOB=true
24
25matrix:
26  exclude: # workaround for https://github.com/travis-ci/travis-ci/issues/4681
27    - env: BOGUS_JOB=true
28  include:
29    - os: linux
30      compiler: g++
31      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
32    - os: linux
33      compiler: g++-4.4
34      env: TOOLSET=gcc COMPILER=g++-4.4 CXXSTD=98,0x
35      addons:
36        apt:
37          packages:
38            - g++-4.4
39          sources:
40            - ubuntu-toolchain-r-test
41    - os: linux
42      compiler: g++-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    - os: linux
51      compiler: g++-4.7
52      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=03,11
53      addons:
54        apt:
55          packages:
56            - g++-4.7
57          sources:
58            - ubuntu-toolchain-r-test
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    - os: linux
78      compiler: g++-5
79      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=03,11,14,1z
80      addons:
81        apt:
82          packages:
83            - g++-5
84          sources:
85            - ubuntu-toolchain-r-test
86    - os: linux
87      compiler: g++-6
88      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=03,11,14,1z
89      addons:
90        apt:
91          packages:
92            - g++-6
93          sources:
94            - ubuntu-toolchain-r-test
95    - os: linux
96      compiler: g++-7
97      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17
98      addons:
99        apt:
100          packages:
101            - g++-7
102          sources:
103            - ubuntu-toolchain-r-test
104    - os: linux
105      compiler: g++-8
106      env: TOOLSET=gcc COMPILER=g++-8 CXXSTD=03,11,14,17,2a
107      addons:
108        apt:
109          packages:
110            - g++-8
111          sources:
112            - ubuntu-toolchain-r-test
113    - os: linux
114      compiler: g++-7
115      env: UBSAN=1 TOOLSET=gcc COMPILER=g++-7 CXXSTD=03,11,14,17 UBSAN_OPTIONS=print_stacktrace=1 LINKFLAGS=-fuse-ld=gold
116      addons:
117        apt:
118          packages:
119            - g++-7
120          sources:
121            - ubuntu-toolchain-r-test
122    - os: linux
123      compiler: clang++
124      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
125    - os: linux
126      compiler: /usr/bin/clang++
127      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
128      addons:
129        apt:
130          packages:
131            - clang-3.3
132    - os: linux
133      compiler: /usr/bin/clang++
134      env: TOOLSET=clang COMPILER=/usr/bin/clang++ CXXSTD=03,11
135      addons:
136        apt:
137          packages:
138            - clang-3.4
139    - os: linux
140      compiler: clang++-3.5
141      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
142      addons:
143        apt:
144          packages:
145            - clang-3.5
146            - libstdc++-4.9-dev
147          sources:
148            - ubuntu-toolchain-r-test
149            - llvm-toolchain-precise-3.5
150    - os: linux
151      compiler: clang++-3.6
152      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
153      addons:
154        apt:
155          packages:
156            - clang-3.6
157          sources:
158            - ubuntu-toolchain-r-test
159            - llvm-toolchain-precise-3.6
160    - os: linux
161      compiler: clang++-3.7
162      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
163      addons:
164        apt:
165          packages:
166            - clang-3.7
167          sources:
168            - ubuntu-toolchain-r-test
169            - llvm-toolchain-precise-3.7
170    - os: linux
171      compiler: clang++-3.8
172      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
173      addons:
174        apt:
175          packages:
176            - clang-3.8
177            - libstdc++-4.9-dev
178          sources:
179            - ubuntu-toolchain-r-test
180            - llvm-toolchain-precise-3.8
181    - os: linux
182      compiler: clang++-3.9
183      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
184      addons:
185        apt:
186          packages:
187            - clang-3.9
188            - libstdc++-4.9-dev
189          sources:
190            - ubuntu-toolchain-r-test
191            - llvm-toolchain-precise-3.9
192    - os: linux
193      compiler: clang++-4.0
194      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
195      addons:
196        apt:
197          packages:
198            - clang-4.0
199          sources:
200            - ubuntu-toolchain-r-test
201            - llvm-toolchain-trusty-4.0
202    - os: linux
203      compiler: clang++-5.0
204      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
205      addons:
206        apt:
207          packages:
208            - clang-5.0
209          sources:
210            - ubuntu-toolchain-r-test
211            - llvm-toolchain-trusty-5.0
212    - os: linux
213      compiler: clang++-6.0
214      env: TOOLSET=clang COMPILER=clang++-6.0 CXXSTD=03,11,14,17,2a
215      addons:
216        apt:
217          packages:
218            - clang-6.0
219          sources:
220            - ubuntu-toolchain-r-test
221            - llvm-toolchain-trusty-6.0
222    - os: linux
223      compiler: clang++-7
224      env: TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a
225      addons:
226        apt:
227          packages:
228            - clang-7
229          sources:
230            - ubuntu-toolchain-r-test
231            - llvm-toolchain-trusty-7
232    - os: linux
233      compiler: clang++-7
234      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-7 CXXSTD=03,11,14,17,2a UBSAN_OPTIONS=print_stacktrace=1
235      addons:
236        apt:
237          packages:
238            - clang-7
239            - libstdc++-5-dev
240          sources:
241            - ubuntu-toolchain-r-test
242            - llvm-toolchain-trusty-7
243    - os: linux
244      compiler: clang++-libc++
245      env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z
246      addons:
247        apt:
248          packages:
249            - libc++-dev
250    - os: linux
251      compiler: clang++-libc++
252      env: UBSAN=1 TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=03,11,14,1z UBSAN_OPTIONS=print_stacktrace=1
253      addons:
254        apt:
255          packages:
256            - libc++-dev
257    - os: osx
258      compiler: clang++
259      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
260
261install:
262  - cd ..
263  - git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
264  - cd boost-root
265  - git submodule update --init
266  - git rm --ignore-unmatch libs/multi_index/
267  - ./bootstrap.sh
268  - ./b2 headers
269  - mkdir libs/multi_index
270  - cp -r $TRAVIS_BUILD_DIR/* libs/multi_index
271
272script:
273  - |-
274    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
275  - ./b2 libs/multi_index/test toolset=$TOOLSET cxxstd=$CXXSTD