language:
    - cpp
sudo: required

matrix:
  include:
    # linux with gcc 9
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - gcc-9
      dist: bionic
      env:
        - MATRIX_EVAL="CC=gcc-9 CXX=g++-9"
      compiler: gcc
    # linux with gcc 8
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - gcc-8
      dist: bionic
      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: bionic
      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: bionic
      env:
        - MATRIX_EVAL="CC=gcc-6 CXX=g++-6"
      compiler: gcc
    # linux with gcc 5
    - os: linux
      dist: bionic
      env:
        - MATRIX_EVAL="CC=gcc CXX=g++"
      compiler: gcc
    # linux with gcc 4
    - os: linux
      dist: xenial
      env:
        - MATRIX_EVAL="CC=gcc CXX=g++"
      compiler: gcc
    # linux with clang 8
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - clang-8
      dist: bionic
      env:
        - MATRIX_EVAL="CC=clang-8 CXX=clang++-8"
      compiler: clang
    # linux with clang 6
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - clang-6.0
      dist: bionic
      env:
        - MATRIX_EVAL="CC=clang-6.0 CXX=clang++-6.0"
      compiler: clang
    # linux with clang 3.8
    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          install:
            - clang-3.8
      dist: xenial
      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 --systemd-unit;
        ./waf -v build;
        sudo ./waf -v install;
      fi
    - if [ "$TRAVIS_OS_NAME" == "osx" ]; then
        CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" python2 ./waf configure;
        CXXFLAGS="${CXXFLAGS} -flax-vector-conversions" python2 ./waf -v build;
        sudo python2 ./waf -v install;
      fi
# run very basic tests
    - sudo .ci/test_run.sh

branches:
  only:
    - /.*/

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