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 - 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 - linux-libc-dev # needed for statx kernel syscall in the absence of glibc wrapper on bionic 136 - g++-9 137 sources: 138 - sourceline: "ppa:ubuntu-toolchain-r/test" 139 140 - os: linux 141 dist: focal 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: focal 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: bionic 305 compiler: clang-9 306 env: TOOLSET=clang COMPILER=clang++-9 CXXSTD=03,11,14,17,2a 307 addons: 308 apt: 309 packages: 310 - linux-libc-dev # needed for statx kernel syscall in the absence of glibc wrapper on bionic 311 - clang-9 312 - libstdc++-9-dev 313 sources: 314 - sourceline: "ppa:ubuntu-toolchain-r/test" 315 - sourceline: "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main" 316 key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" 317 318 - os: linux 319 dist: focal 320 compiler: clang-10 321 env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 322 addons: 323 apt: 324 packages: 325 - clang-10 326 - libstdc++-9-dev 327 sources: 328 - sourceline: "ppa:ubuntu-toolchain-r/test" 329 - sourceline: "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main" 330 key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" 331 332 - os: linux 333 dist: focal 334 compiler: clang-UBSAN 335 env: UBSAN=1 TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 UBSAN_OPTIONS=print_stacktrace=1 336 addons: 337 apt: 338 packages: 339 - clang-10 340 - libstdc++-9-dev 341 sources: 342 - sourceline: "ppa:ubuntu-toolchain-r/test" 343 - sourceline: "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main" 344 key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" 345 346 - os: linux 347 dist: focal 348 compiler: clang-libc++ 349 env: TOOLSET=clang COMPILER=clang++-10 CXXSTD=03,11,14,17,20 CXXFLAGS="-stdlib=libc++" LINKFLAGS="-stdlib=libc++" 350 addons: 351 apt: 352 packages: 353 - clang-10 354 - libc++-10-dev 355 - libc++abi-10-dev 356 sources: 357 - sourceline: "ppa:ubuntu-toolchain-r/test" 358 - sourceline: "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main" 359 key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" 360 361 - os: linux 362 dist: focal 363 compiler: clang-libc++-UBSAN 364 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++" 365 addons: 366 apt: 367 packages: 368 - clang-10 369 - libc++-10-dev 370 - libc++abi-10-dev 371 sources: 372 - sourceline: "ppa:ubuntu-toolchain-r/test" 373 - sourceline: "deb http://apt.llvm.org/focal/ llvm-toolchain-focal-10 main" 374 key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" 375 376# clang, OS X 377# OS X builds are slow on Travis CI 378# - os: osx 379# env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z 380# osx_image: xcode9.4 381# 382# - os: osx 383# env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z 384# osx_image: xcode10.3 385 386 - os: osx 387 env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17 388 osx_image: xcode11.2 389 390# clang, FreeBSD 391 - os: freebsd 392 env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,17,2a 393 394# cmake self-test 395 - os: linux 396 env: TEST_CMAKE=1 397 addons: 398 apt: 399 packages: 400 - cmake 401 script: 402 - BUILD_JOBS=`(nproc || sysctl -n hw.ncpu) 2> /dev/null` 403 - mkdir __build_static__ && cd __build_static__ 404 - cmake ../libs/filesystem/test/test_cmake 405 - cmake --build . --target boost_filesystem_cmake_self_test -j $BUILD_JOBS 406 - cd .. 407 - mkdir __build_shared__ && cd __build_shared__ 408 - cmake -DBUILD_SHARED_LIBS=On ../libs/filesystem/test/test_cmake 409 - cmake --build . --target boost_filesystem_cmake_self_test -j $BUILD_JOBS 410 411 412install: 413 - GIT_FETCH_JOBS=8 414 - BOOST_BRANCH=develop 415 - if [ "$TRAVIS_BRANCH" = "master" ]; then BOOST_BRANCH=master; fi 416 - cd .. 417 - git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root 418 - cd boost-root 419 - git submodule init tools/build 420 - git submodule init tools/boostdep 421 - git submodule init tools/boost_install 422 - git submodule init libs/headers 423 - git submodule init libs/config 424 - git submodule update --jobs $GIT_FETCH_JOBS 425 - cp -r $TRAVIS_BUILD_DIR/* libs/filesystem 426 - python tools/boostdep/depinst/depinst.py --git_args "--jobs $GIT_FETCH_JOBS" filesystem 427 - ./bootstrap.sh 428 - ./b2 headers 429 430script: 431 - |- 432 echo "using $TOOLSET : : $COMPILER ;" > ~/user-config.jam 433 - BUILD_JOBS=`(nproc || sysctl -n hw.ncpu) 2> /dev/null` 434 - ./b2 -j $BUILD_JOBS libs/filesystem/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"} 435 436notifications: 437 email: 438 on_success: always 439