| # Build matrix / environment variable are explained on: |
| # http://about.travis-ci.org/docs/user/build-configuration/ |
| # This file can be validated on: http://lint.travis-ci.org/ |
| |
| dist: xenial |
| language: cpp |
| |
| compiler: |
| - gcc |
| - clang |
| os: |
| - linux |
| - osx |
| |
| env: |
| - BUILD_TYPE=Debug |
| - BUILD_TYPE=RelWithDebInfo |
| |
| matrix: |
| exclude: |
| # GCC fails on recent Travis OSX images. |
| # https://github.com/travis-ci/travis-ci/issues/9640 |
| - compiler: gcc |
| os: osx |
| |
| addons: |
| apt: |
| sources: |
| - llvm-toolchain-xenial-7 |
| - ubuntu-toolchain-r-test |
| packages: |
| - clang-7 |
| - cmake |
| - gcc-8 |
| - g++-8 |
| - libgoogle-perftools-dev |
| - libkyotocabinet-dev |
| - libsnappy-dev |
| - libsqlite3-dev |
| - ninja-build |
| homebrew: |
| packages: |
| - crc32c |
| - gperftools |
| - kyotocabinet |
| - gcc@7 |
| - ninja |
| - snappy |
| - sqlite3 |
| |
| before_install: |
| # The Travis VM image for Mac already has a link at /usr/local/include/c++, |
| # causing Homebrew's gcc installation to error out. This was reported to |
| # Homebrew maintainers at https://github.com/Homebrew/brew/issues/1742 and |
| # removing the link emerged as a workaround. |
| - if [ "$TRAVIS_OS_NAME" == "osx" ]; then rm -f /usr/local/include/c++ ; fi |
| |
| install: |
| # /usr/bin/gcc is stuck to old versions on both Linux and OSX. |
| - if [ "$CXX" = "g++" ]; then export CXX="g++-8" CC="gcc-8"; fi |
| - echo ${CC} |
| - echo ${CXX} |
| - ${CXX} --version |
| - cmake --version |
| |
| before_script: |
| - mkdir -p build && cd build |
| - cmake .. -G Ninja -DCMAKE_BUILD_TYPE=$BUILD_TYPE |
| - cmake --build . |
| - cd .. |
| |
| script: |
| - cd build && ctest --verbose && cd .. |
| - "if [ -f build/db_bench ] ; then build/db_bench ; fi" |
| - "if [ -f build/db_bench_sqlite3 ] ; then build/db_bench_sqlite3 ; fi" |
| - "if [ -f build/db_bench_tree_db ] ; then build/db_bench_tree_db ; fi" |