language: cpp

matrix:
  include:
    - os: linux
      dist: trusty
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-6
            - libcppunit-dev
            - libboost-dev
      env:
        - MATRIX_EVAL="export CC=gcc-6 CXX=g++-6"

    - os: linux
      dist: trusty
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-8
            - libcppunit-dev
            - libboost-dev
      env:
        - MATRIX_EVAL="export CC=gcc-8 CXX=g++-8"

    - os: osx
      osx_image: xcode9.3beta
      env:
        - MATRIX_EVAL=""

env:
  global:
    - MAKEFLAGS="-j2"

cache:
  - apt
  - ccache

before_install:
  - eval "${MATRIX_EVAL}"
  # C++14
  - test "$TRAVIS_OS_NAME" != "osx" || brew update

install:
  # C++14
  - test "$TRAVIS_OS_NAME" != "osx" || brew install cppunit ccache

before_script:
  - ccache -s

script:
  - OPTIONS="--enable-test"
  - test "$TRAVIS_OS_NAME" != "osx" || OPTIONS="$OPTIONS --enable-osx"
  - ./autogen.sh
  - ./configure CC="ccache $CC" CXX="ccache $CXX" --disable-silent-rules --disable-dependency-tracking $OPTIONS
  - make
  - make check
  - ccache -s