language:
    - cpp
sudo: required

matrix:
  include:
    # linux with gcc 8
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - gcc-8
      dist: trusty
      env:
        - MATRIX_EVAL="CC=gcc-8 CXX=g++-8"
      compiler: gcc
    # linux with gcc 7
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - gcc-7
      dist: trusty
      env:
        - MATRIX_EVAL="CC=gcc-7 CXX=g++-7"
      compiler: gcc
    # linux with gcc 6
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - gcc-6
      dist: trusty
      env:
        - MATRIX_EVAL="CC=gcc-6 CXX=g++-6"
      compiler: gcc
    # linux with gcc default (4.8)
    - os: linux
      dist: trusty
      compiler: gcc
    # linux with clang default (3.5)
    - os: linux
      dist: trusty
      compiler: clang
    # linux with clang 3.8
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - clang-3.8
      dist: trusty
      env:
        - MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8"
      compiler: clang
    # osx with xcode8.3/clang
    - os: osx
      osx_image: xcode8.3
      compiler: clang
    # osx with xcode9.2/clang
    - os: osx
      osx_image: xcode9.2
      compiler: clang
    # osx with xcode10.0/clang
    - os: osx
      osx_image: xcode10
      compiler: clang
    # osx with xcode10.1/clang
    - os: osx
      osx_image: xcode10.1
      compiler: clang
    # osx with xcode/clang (default)
    - os: osx
      compiler: clang

before_install:
  - eval "${MATRIX_EVAL}"
    # uninstalling oclint, as it's preinstalled and conflicts with all versions of gcc
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
    brew cask uninstall oclint || true
    brew update;
    fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -qq update; fi

install:
  - ./.ci/install-deps.sh

before_script:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig; fi

script:
    - if [ "$TRAVIS_OS_NAME" == "linux" ]; then
        ./waf configure --prefix=/usr --alsa --classic --dbus;
        ./waf -v build;
      fi
    - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
        CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf configure;
        CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" ./waf -v build;
      fi
    - sudo ./waf -v install

branches:
  only:
    - /.*/

notifications:
  email: false
# vim:set ts=2 sw=2 et:
