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