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