1# Copyright 2016, 2017, 2018 Peter Dimov
2# Copyright 2018 T. Zachary Laine
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
10branches:
11  only:
12    - master
13    - develop
14    - /feature\/.*/
15
16env:
17  matrix:
18    - BOGUS_JOB=true
19
20matrix:
21
22  exclude:
23    - env: BOGUS_JOB=true
24
25  include:
26    - os: linux
27      env: TOOLSET=gcc COMPILER=g++ CXXSTD=11
28
29    - os: linux
30      env: TOOLSET=gcc COMPILER=g++-4.7 CXXSTD=11
31      addons:
32        apt:
33          packages:
34            - g++-4.7
35          sources:
36            - ubuntu-toolchain-r-test
37
38    - os: linux
39      env: TOOLSET=gcc COMPILER=g++-4.8 CXXSTD=11
40      addons:
41        apt:
42          packages:
43            - g++-4.8
44          sources:
45            - ubuntu-toolchain-r-test
46
47    - os: linux
48      env: TOOLSET=gcc COMPILER=g++-4.9 CXXSTD=11
49      addons:
50        apt:
51          packages:
52            - g++-4.9
53          sources:
54            - ubuntu-toolchain-r-test
55
56    - os: linux
57      env: TOOLSET=gcc COMPILER=g++-5 CXXSTD=11,14,1z
58      addons:
59        apt:
60          packages:
61            - g++-5
62          sources:
63            - ubuntu-toolchain-r-test
64
65    - os: linux
66      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=11,14,1z
67      addons:
68        apt:
69          packages:
70            - g++-6
71          sources:
72            - ubuntu-toolchain-r-test
73
74    - os: linux
75      env: TOOLSET=gcc COMPILER=g++-6 CXXSTD=11,14,1z CXXSTD_DIALECT=cxxstd-dialect=gnu
76      addons:
77        apt:
78          packages:
79            - g++-6
80          sources:
81            - ubuntu-toolchain-r-test
82
83    - os: linux
84      env: TOOLSET=gcc COMPILER=g++-7 CXXSTD=11,14,17
85      addons:
86        apt:
87          packages:
88            - g++-7
89          sources:
90            - ubuntu-toolchain-r-test
91
92    - os: linux
93      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11
94
95    - os: linux
96      compiler: clang++-libc++
97      env: TOOLSET=clang COMPILER=clang++-libc++ CXXSTD=11,14,1z
98      addons:
99        apt:
100          packages:
101            - libc++-dev
102
103    - os: osx
104      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
105      osx_image: xcode9.1
106
107    - os: osx
108      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
109      osx_image: xcode9
110
111    - os: osx
112      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
113      osx_image: xcode8.3
114
115    - os: osx
116      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
117      osx_image: xcode8
118
119    - os: osx
120      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
121      osx_image: xcode7.3
122
123    - os: osx
124      env: TOOLSET=clang COMPILER=clang++ CXXSTD=11,14,1z
125      osx_image: xcode6.4
126
127install:
128  - BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
129  - cd ..
130  - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
131  - cd boost-root
132  - git submodule update --init tools/build
133  - git submodule update --init libs/config
134  - git submodule update --init libs/predef
135  - git submodule update --init libs/core
136  - git submodule update --init libs/detail
137  - git submodule update --init libs/range
138  - git submodule update --init libs/assert
139  - git submodule update --init libs/array
140  - git submodule update --init libs/type_traits
141  - git submodule update --init libs/static_assert
142  - git submodule update --init libs/iterator
143  - git submodule update --init libs/preprocessor
144  - git submodule update --init libs/mpl
145  - git submodule update --init libs/smart_ptr
146  - git submodule update --init libs/callable_traits
147  - git submodule update --init libs/type_index
148  - git submodule update --init libs/exception
149  - git submodule update --init libs/throw_exception
150  - git submodule update --init libs/utility
151  - git submodule update --init libs/bind
152  - git submodule update --init libs/ratio
153  - git submodule update --init libs/function
154  - git submodule update --init libs/integer
155  - git submodule update --init libs/numeric
156  - git submodule update --init libs/move
157  - git submodule update --init libs/container_hash
158  - git submodule update --init libs/io
159  - git submodule update --init libs/concept_check
160  - git submodule update --init libs/test
161  - git submodule update --init libs/timer
162  - git submodule update --init libs/chrono
163  - git submodule update --init libs/system
164  - cp -r $TRAVIS_BUILD_DIR/* libs/algorithm
165  - ./bootstrap.sh
166  - ./b2 headers
167
168script:
169  - |-
170    echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam
171  - ./b2 -j3 libs/algorithm/test toolset=$TOOLSET cxxstd=$CXXSTD $CXXSTD_DIALECT
172