1# Copyright 2016, 2017 Peter Dimov
2# Copyright 2018, Mike-Dev
3# Distributed under the Boost Software License, Version 1.0.
4# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
5
6language: cpp
7
8sudo: false
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
29      # cmake self-test
30    - os: linux
31      env: TEST_CMAKE=TRUE #Only for easier identification in travis web gui
32      install:
33        - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
34        - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/assert.git ../assert
35        - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/config.git ../config
36        - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/core.git ../core
37        - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/static_assert.git ../static_assert
38        - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/throw_exception.git ../throw_exception
39
40      script:
41        - mkdir __build__ && cd __build__
42        - cmake ../test/test_cmake
43        - cmake --build .
44
45    - os: linux
46      compiler: g++
47      env: TOOLSET=gcc COMPILER=g++ CXXSTD=03,11
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: clang++
111      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11
112
113    - os: linux
114      compiler: clang++-3.5
115      env: TOOLSET=clang COMPILER=clang++-3.5 CXXSTD=03,11,14,1z
116      addons:
117        apt:
118          packages:
119            - clang-3.5
120            - libstdc++-4.9-dev
121          sources:
122            - ubuntu-toolchain-r-test
123            - llvm-toolchain-precise-3.5
124
125    - os: linux
126      compiler: clang++-3.6
127      env: TOOLSET=clang COMPILER=clang++-3.6 CXXSTD=03,11,14,1z
128      addons:
129        apt:
130          packages:
131            - clang-3.6
132          sources:
133            - ubuntu-toolchain-r-test
134            - llvm-toolchain-precise-3.6
135
136    - os: linux
137      compiler: clang++-3.7
138      env: TOOLSET=clang COMPILER=clang++-3.7 CXXSTD=03,11,14,1z
139      addons:
140        apt:
141          packages:
142            - clang-3.7
143          sources:
144            - ubuntu-toolchain-r-test
145            - llvm-toolchain-precise-3.7
146
147    - os: linux
148      compiler: clang++-3.8
149      env: TOOLSET=clang COMPILER=clang++-3.8 CXXSTD=03,11,14,1z
150      addons:
151        apt:
152          packages:
153            - clang-3.8
154            - libstdc++-4.9-dev
155          sources:
156            - ubuntu-toolchain-r-test
157            - llvm-toolchain-precise-3.8
158
159    - os: linux
160      compiler: clang++-3.9
161      env: TOOLSET=clang COMPILER=clang++-3.9 CXXSTD=03,11,14,1z
162      addons:
163        apt:
164          packages:
165            - clang-3.9
166            - libstdc++-4.9-dev
167          sources:
168            - ubuntu-toolchain-r-test
169            - llvm-toolchain-precise-3.9
170
171    - os: linux
172      compiler: clang++-4.0
173      env: TOOLSET=clang COMPILER=clang++-4.0 CXXSTD=03,11,14,1z
174      addons:
175        apt:
176          packages:
177            - clang-4.0
178          sources:
179            - ubuntu-toolchain-r-test
180            - llvm-toolchain-trusty-4.0
181
182    - os: linux
183      compiler: clang++-5.0
184      env: TOOLSET=clang COMPILER=clang++-5.0 CXXSTD=03,11,14,1z
185      addons:
186        apt:
187          packages:
188            - clang-5.0
189          sources:
190            - ubuntu-toolchain-r-test
191            - llvm-toolchain-trusty-5.0
192
193    - os: osx
194      compiler: clang++
195      env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
196
197install:
198  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
199  - cd ..
200  - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
201  - cd boost-root
202  - git submodule update --init tools/build
203  - git submodule update --init libs/config
204  - git submodule update --init tools/boostdep
205  - cp -r $TRAVIS_BUILD_DIR/* libs/array
206  - python tools/boostdep/depinst/depinst.py array
207  - ./bootstrap.sh
208  - ./b2 headers
209
210script:
211  - |-
212    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
213  - ./b2 -j 3 libs/array/test toolset=$TOOLSET cxxstd=$CXXSTD
214
215notifications:
216  email:
217    on_success: always
218