Marco Poletti | 27c6f07 | 2015-11-29 18:43:58 +0000 | [diff] [blame] | 1 | sudo: required |
| 2 | dist: trusty |
Marco Poletti | 0843ee4 | 2015-02-21 09:40:29 +0000 | [diff] [blame] | 3 | language: cpp |
| 4 | |
Marco Poletti | 33aed1b | 2015-02-21 11:56:01 +0000 | [diff] [blame] | 5 | before_install: |
Marco Poletti | ee84bc9 | 2016-03-26 13:37:02 +0000 | [diff] [blame] | 6 | - "if [ ${TRAVIS_OS_NAME} = 'linux' ]; then ./scripts/travis_ci_before_install_linux.sh; fi" |
| 7 | - "if [ ${TRAVIS_OS_NAME} = 'osx' ]; then ./scripts/travis_ci_before_install_osx.sh; fi" |
Marco Poletti | 33aed1b | 2015-02-21 11:56:01 +0000 | [diff] [blame] | 8 | install: |
Marco Poletti | 3bd4725 | 2015-12-07 18:57:33 +0000 | [diff] [blame] | 9 | - export CC="${MY_CC}" |
| 10 | - export CXX="${MY_CXX}" |
Marco Poletti | ee84bc9 | 2016-03-26 13:37:02 +0000 | [diff] [blame] | 11 | - "if [ ${TRAVIS_OS_NAME} = 'linux' ]; then ./scripts/travis_ci_install_linux.sh; fi" |
| 12 | - "if [ ${TRAVIS_OS_NAME} = 'osx' ]; then ./scripts/travis_ci_install_osx.sh; fi" |
Marco Poletti | d5fa227 | 2016-02-14 09:12:32 +0000 | [diff] [blame] | 13 | - "echo CXX version: $($CXX --version)" |
| 14 | - "echo C++ Standard library location: $(echo '#include <vector>' | g++ -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1)" |
| 15 | - "echo Normalized C++ Standard library location: $(readlink -f $(echo '#include <vector>' | g++ -x c++ -E - | grep 'vector\"' | awk '{print $3}' | sed 's@/vector@@;s@\"@@g' | head -n 1))" |
Marco Poletti | 33aed1b | 2015-02-21 11:56:01 +0000 | [diff] [blame] | 16 | |
Marco Poletti | 3bd4725 | 2015-12-07 18:57:33 +0000 | [diff] [blame] | 17 | script: |
| 18 | - export CC="${MY_CC}" |
| 19 | - export CXX="${MY_CXX}" |
Marco Poletti | ee84bc9 | 2016-03-26 13:37:02 +0000 | [diff] [blame] | 20 | - '[ "$NO_ASAN" == 1 ] || ./scripts/postsubmit.sh DebugAsan' |
| 21 | - '[ "$NO_VALGRIND" == 1 ] || ./scripts/postsubmit.sh DebugValgrind' |
| 22 | - '[ "$NO_ASAN" != 1 ] || [ "$NO_VALGRIND" != 1 ] || ./scripts/postsubmit.sh DebugPlain' |
| 23 | - '[ "$NO_VALGRIND" != 1 ] || ./scripts/postsubmit.sh ReleasePlain' |
| 24 | - '[ "$NO_VALGRIND" == 1 ] || ./scripts/postsubmit.sh ReleaseValgrind' |
Marco Poletti | 0843ee4 | 2015-02-21 09:40:29 +0000 | [diff] [blame] | 25 | |
| 26 | branches: |
| 27 | only: |
| 28 | - master |
Marco Poletti | ec4b6db | 2015-12-01 19:11:06 +0100 | [diff] [blame] | 29 | |
Marco Poletti | cd13b20 | 2015-05-31 16:44:55 +0100 | [diff] [blame] | 30 | matrix: |
Marco Poletti | 3ed306a | 2016-02-07 17:52:29 +0000 | [diff] [blame] | 31 | # Report an error as soon as the first matrix entry fails. |
| 32 | fast_finish: true |
Marco Poletti | cd13b20 | 2015-05-31 16:44:55 +0100 | [diff] [blame] | 33 | include: |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 34 | # GCC on Linux |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 35 | - os: linux |
| 36 | compiler: gcc |
Marco Poletti | 3ed306a | 2016-02-07 17:52:29 +0000 | [diff] [blame] | 37 | # ASAN (aka '-fsanitize=undefined,address') is not supported in GCC 4.8. |
Marco Poletti | b35cb27 | 2016-02-14 09:56:48 +0000 | [diff] [blame] | 38 | env: MY_CC=gcc-4.8 MY_CXX=g++-4.8 NO_ASAN=1 |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 39 | - os: linux |
| 40 | compiler: gcc |
Marco Poletti | b35cb27 | 2016-02-14 09:56:48 +0000 | [diff] [blame] | 41 | env: MY_CC=gcc-4.9 MY_CXX=g++-4.9 |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 42 | - os: linux |
| 43 | compiler: gcc |
Marco Poletti | b35cb27 | 2016-02-14 09:56:48 +0000 | [diff] [blame] | 44 | env: MY_CC=gcc-5 MY_CXX=g++-5 |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 45 | # Clang on Linux with libstdc++ |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 46 | - os: linux |
| 47 | compiler: clang |
Marco Poletti | 8bb168b | 2016-02-14 09:41:11 +0000 | [diff] [blame] | 48 | env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libstdc++ |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 49 | - os: linux |
| 50 | compiler: clang |
Marco Poletti | 8bb168b | 2016-02-14 09:41:11 +0000 | [diff] [blame] | 51 | env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libstdc++ |
Marco Poletti | 70bf24d | 2015-12-01 22:56:47 +0100 | [diff] [blame] | 52 | - os: linux |
| 53 | compiler: clang |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 54 | # ASAN is disabled because it would hit this error: |
| 55 | # ld: cannot find [...]/libclang_rt.asan-x86_64.a |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 56 | env: MY_CC=clang-3.7 MY_CXX=clang++-3.7 STL=libstdc++ NO_ASAN=1 |
Marco Poletti | c359c98 | 2016-03-26 13:41:35 +0000 | [diff] [blame] | 57 | - os: linux |
| 58 | compiler: clang |
Marco Poletti | 7c3cd60 | 2016-04-05 10:26:30 +0200 | [diff] [blame] | 59 | env: MY_CC=clang-3.8 MY_CXX=clang++-3.8 STL=libstdc++ |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 60 | # Clang on Linux with libc++ |
Marco Poletti | 8bb168b | 2016-02-14 09:41:11 +0000 | [diff] [blame] | 61 | - os: linux |
| 62 | compiler: clang |
| 63 | env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libc++ |
| 64 | - os: linux |
| 65 | compiler: clang |
| 66 | env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libc++ |
| 67 | - os: linux |
| 68 | compiler: clang |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 69 | # ASAN is disabled because it would hit this error: |
| 70 | # ld: cannot find [...]/libclang_rt.asan-x86_64.a |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 71 | env: MY_CC=clang-3.7 MY_CXX=clang++-3.7 STL=libc++ NO_ASAN=1 |
Marco Poletti | c359c98 | 2016-03-26 13:41:35 +0000 | [diff] [blame] | 72 | - os: linux |
| 73 | compiler: clang |
Marco Poletti | 7c3cd60 | 2016-04-05 10:26:30 +0200 | [diff] [blame] | 74 | env: MY_CC=clang-3.8 MY_CXX=clang++-3.8 STL=libc++ |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 75 | # GCC on OS X |
Marco Poletti | 6502502 | 2016-02-14 12:51:03 +0000 | [diff] [blame] | 76 | - os: osx |
| 77 | compiler: gcc |
Marco Poletti | 8bb168b | 2016-02-14 09:41:11 +0000 | [diff] [blame] | 78 | # ASAN (aka '-fsanitize=undefined,address') is not supported in GCC 4.8. |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 79 | env: MY_CC=gcc-4.8 MY_CXX=g++-4.8 NO_ASAN=1 |
Marco Poletti | f4a43ea | 2015-12-01 18:54:48 +0100 | [diff] [blame] | 80 | - os: osx |
| 81 | compiler: gcc |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 82 | env: MY_CC=gcc-4.9 MY_CXX=g++-4.9 |
Marco Poletti | f4a43ea | 2015-12-01 18:54:48 +0100 | [diff] [blame] | 83 | - os: osx |
Marco Poletti | 9160e79 | 2016-02-21 10:08:49 +0000 | [diff] [blame] | 84 | compiler: gcc |
Marco Poletti | 426ee1d | 2016-02-21 15:01:30 +0000 | [diff] [blame] | 85 | env: MY_CC=gcc-5 MY_CXX=g++-5 |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 86 | # Clang on OS X (with libc++) |
Marco Poletti | 9160e79 | 2016-02-21 10:08:49 +0000 | [diff] [blame] | 87 | - os: osx |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 88 | compiler: clang |
Marco Poletti | 2a1d5c7 | 2016-02-20 15:57:56 +0000 | [diff] [blame] | 89 | # ASAN is disabled because it would hit this error: |
| 90 | # ld: file not found: [...]/libclang_rt.ubsan_osx.a |
Marco Poletti | 9e383d2 | 2016-02-21 12:22:22 +0000 | [diff] [blame] | 91 | # Not sure if that's a limitation of Clang 3.6 on OS X or just of the brew-provided binaries. |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 92 | env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libc++ NO_ASAN=1 |
Marco Poletti | 3ed306a | 2016-02-07 17:52:29 +0000 | [diff] [blame] | 93 | - os: osx |
Marco Poletti | 9c18e0a | 2016-02-21 10:05:34 +0000 | [diff] [blame] | 94 | compiler: clang |
Marco Poletti | 9e383d2 | 2016-02-21 12:22:22 +0000 | [diff] [blame] | 95 | # ASAN is disabled because it would hit this error: |
| 96 | # ld: file not found: [...]/libclang_rt.ubsan_osx.a |
| 97 | # Not sure if that's a limitation of Clang 3.7 on OS X or just of the brew-provided binaries. |
| 98 | env: MY_CC=clang-3.7 MY_CXX=clang++-3.7 STL=libc++ NO_ASAN=1 |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 99 | # AppleClang on OS X (with libc++) |
| 100 | - os: osx |
| 101 | compiler: clang |
| 102 | # OS X 10.10 |
| 103 | osx_image: xcode7.1 |
Marco Poletti | 5d15269 | 2016-02-21 13:44:15 +0000 | [diff] [blame] | 104 | # ASAN is disabled because AppleClang does not support -fsanitize=undefined. |
| 105 | env: MY_CC=clang MY_CXX=clang++ STL=libc++ NO_ASAN=1 |
Marco Poletti | 1c4395b | 2016-02-21 10:20:09 +0000 | [diff] [blame] | 106 | - os: osx |
| 107 | compiler: clang |
| 108 | # OS X 10.11 |
| 109 | osx_image: xcode7.3 |
Marco Poletti | 5d15269 | 2016-02-21 13:44:15 +0000 | [diff] [blame] | 110 | # ASAN is disabled because AppleClang does not support -fsanitize=undefined. |
| 111 | env: MY_CC=clang MY_CXX=clang++ STL=libc++ NO_ASAN=1 |
Marco Poletti | 3ed306a | 2016-02-07 17:52:29 +0000 | [diff] [blame] | 112 | |
Marco Poletti | 227bef1 | 2016-02-14 18:00:12 +0000 | [diff] [blame] | 113 | # Disabled combinations: |
| 114 | # |
| 115 | # These fail with "'type_traits' file not found" (the <type_traits> header is missing). |
| 116 | # - os: osx |
| 117 | # compiler: gcc |
| 118 | # env: MY_CC=gcc MY_CXX=g++ STL=libstdc++ |
| 119 | # - os: osx |
| 120 | # compiler: clang |
| 121 | # env: MY_CC=clang MY_CXX=clang++ STL=libstdc++ |
| 122 | # - os: osx |
| 123 | # compiler: clang |
| 124 | # env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libstdc++ NO_VALGRIND=1 |
| 125 | # - os: osx |
| 126 | # compiler: clang |
| 127 | # env: MY_CC=clang-3.6 MY_CXX=clang++-3.6 STL=libstdc++ |
Marco Poletti | b5ae785 | 2016-02-20 17:52:48 +0000 | [diff] [blame] | 128 | # |
| 129 | # The compiler complains that the 2-argument constructor of std::pair is ambiguous, even after |
| 130 | # adding explicit casts to the exact types of the expected overload. |
| 131 | # - os: osx |
| 132 | # compiler: clang |
| 133 | # env: MY_CC=clang MY_CXX=clang++ STL=libc++ NO_ASAN=1 |
| 134 | # |
| 135 | # This triggers an assert error in the compiler, with the message: |
| 136 | # "expected to get called on an inlined function!" [...] function isMSExternInline, file Decl.cpp, line 2647. |
| 137 | # - os: osx |
| 138 | # compiler: clang |
| 139 | # env: MY_CC=clang-3.5 MY_CXX=clang++-3.5 STL=libc++ NO_VALGRIND=1 NO_ASAN=1 |