# 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/

sudo: false
dist: trusty
language: cpp

compiler:
  - gcc
  - clang
os:
  - linux
  - osx

env:
  - BUILD_TYPE=Debug
  - BUILD_TYPE=RelWithDebInfo

addons:
  apt:
    # List of whitelisted in travis packages for ubuntu-trusty can be found here:
    #   https://github.com/travis-ci/apt-package-whitelist/blob/master/ubuntu-trusty
    # List of whitelisted in travis apt-sources:
    #   https://github.com/travis-ci/apt-source-whitelist/blob/master/ubuntu.json
    sources:
    - ubuntu-toolchain-r-test
    - llvm-toolchain-trusty-5.0
    packages:
    - cmake
    - gcc-7
    - g++-7
    - clang-5.0
    - libgoogle-perftools-dev
    - libkyotocabinet-dev
    - libsnappy-dev
    - libsqlite3-dev

install:
# Travis doesn't have a DSL for installing homebrew packages yet. Status tracked
# in https://github.com/travis-ci/travis-ci/issues/5377
# The Travis VM image for Mac already has a link at /usr/local/include/c++,
# causing Homebrew's gcc@7 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
    brew update;
    if [ -L /usr/local/include/c++ ]; then rm /usr/local/include/c++; fi;
    brew install gcc@7;
    brew install crc32c gperftools kyoto-cabinet snappy sqlite3;
  fi
# /usr/bin/gcc is stuck to old versions on both Linux and OSX.
- if [ "$CXX" = "g++" ]; then export CXX="g++-7" CC="gcc-7"; fi
- echo ${CC}
- echo ${CXX}
- ${CXX} --version
- cmake --version

before_script:
- mkdir -p build && cd build
- cmake .. -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"
