Home | History | Annotate | Download | only in google-benchmark
      1 sudo: required
      2 dist: trusty
      3 language: cpp
      4 
      5 env:
      6   global:
      7     - /usr/local/bin:$PATH
      8 
      9 # NOTE: The COMPILER variable is unused. It simply makes the display on
     10 # travis-ci.org more readable.
     11 matrix:
     12     include:
     13         - compiler: gcc
     14           addons:
     15             apt:
     16               packages:
     17                 - lcov
     18           env: COMPILER=g++ C_COMPILER=gcc       BUILD_TYPE=Coverage
     19         - compiler: gcc
     20           env: COMPILER=g++ C_COMPILER=gcc       BUILD_TYPE=Debug
     21         - compiler: gcc
     22           env: COMPILER=g++ C_COMPILER=gcc       BUILD_TYPE=Release
     23         - compiler: gcc
     24           addons:
     25             apt:
     26               sources:
     27                 - ubuntu-toolchain-r-test
     28               packages:
     29                 - g++-6
     30           env:
     31             - COMPILER=g++-6 C_COMPILER=gcc-6  BUILD_TYPE=Debug
     32             - EXTRA_FLAGS="-fno-omit-frame-pointer -g -O2 -fsanitize=undefined,address -fuse-ld=gold"
     33         - compiler: clang
     34           env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Debug
     35         - compiler: clang
     36           env: COMPILER=clang++ C_COMPILER=clang BUILD_TYPE=Release
     37         # Clang w/ libc++
     38         - compiler: clang
     39           addons:
     40             apt:
     41               packages:
     42                 clang-3.8
     43           env:
     44             - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
     45             - LIBCXX_BUILD=1
     46             - EXTRA_FLAGS="-stdlib=libc++"
     47         # Clang w/ libc++, ASAN, UBSAN
     48         - compiler: clang
     49           addons:
     50             apt:
     51               packages:
     52                 clang-3.8
     53           env:
     54             - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
     55             - LIBCXX_BUILD=1 LIBCXX_SANITIZER="Undefined;Address"
     56             - EXTRA_FLAGS="-stdlib=libc++ -fno-omit-frame-pointer -g -O2 -fsanitize=undefined,address -fno-sanitize-recover=all"
     57             - UBSAN_OPTIONS=print_stacktrace=1
     58         # Clang w/ libc++ and MSAN
     59         - compiler: clang
     60           addons:
     61             apt:
     62               packages:
     63                 clang-3.8
     64           env:
     65             - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=Debug
     66             - LIBCXX_BUILD=1 LIBCXX_SANITIZER=MemoryWithOrigins
     67             - EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=memory -fsanitize-memory-track-origins"
     68         # Clang w/ libc++ and MSAN
     69         - compiler: clang
     70           addons:
     71             apt:
     72               packages:
     73                 clang-3.8
     74           env:
     75             - COMPILER=clang++-3.8 C_COMPILER=clang-3.8 BUILD_TYPE=RelWithDebInfo
     76             - LIBCXX_BUILD=1 LIBCXX_SANITIZER=Thread
     77             - EXTRA_FLAGS="-stdlib=libc++ -g -O2 -fno-omit-frame-pointer -fsanitize=thread -fno-sanitize-recover=all"
     78 
     79 before_script:
     80     - if [ -n "${LIBCXX_BUILD}" ]; then
     81         source .travis-libcxx-setup.sh;
     82       fi
     83     - mkdir build && cd build
     84 
     85 install:
     86   - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
     87       PATH=~/.local/bin:${PATH};
     88       pip install --user --upgrade pip;
     89       pip install --user cpp-coveralls;
     90     fi
     91 
     92 script:
     93     - cmake -DCMAKE_C_COMPILER=${C_COMPILER} -DCMAKE_CXX_COMPILER=${COMPILER} -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DCMAKE_CXX_FLAGS="${EXTRA_FLAGS}" ..
     94     - make
     95     - make CTEST_OUTPUT_ON_FAILURE=1 test
     96 
     97 after_success:
     98   - if [ "${BUILD_TYPE}" == "Coverage" -a "${TRAVIS_OS_NAME}" == "linux" ]; then
     99       coveralls --include src --include include --gcov-options '\-lp' --root .. --build-root .;
    100     fi
    101 
    102 sudo: required
    103