diff --git a/.travis.yml b/.travis.yml index f5bd74c..77ea0a3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,13 +1,54 @@ -language: cpp -compiler: -- clang -- gcc -os: -- linux -- osx +# 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 -before_install: -- echo $LANG -- echo $LC_ALL +dist: trusty +language: cpp + +compiler: + - gcc + - clang +os: + - linux + - osx + +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: + - 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 + script: - make -j 4 check