language: cpp
before_install: ./util/travis/before_install.sh
script: ./util/travis/script.sh
sudo: required
dist: trusty
group: edge
notifications:
  email: false
matrix:
  fast_finish: true
  include:

    - env: LINT=1
      compiler: clang
      os: linux
      addons:
        apt:
          packages: ['clang-format-5.0']
          sources: &sources
            - llvm-toolchain-trusty-5.0

    - env: CLANG_TIDY=1
      compiler: clang
      os: linux
      script: ./util/travis/clangtidy.sh
      addons:
        apt:
          packages: ['clang-tidy-5.0']
          sources: &sources
            - llvm-toolchain-trusty-5.0

    - env: PLATFORM=Win32
      compiler: gcc
      os: linux
      addons:
        apt:
          packages: ['gcc-mingw-w64-i686', 'g++-mingw-w64-i686', 'binutils-mingw-w64-i686']
          sources: &sources
            - ubuntu-toolchain-r-test
            - sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'

    - env: PLATFORM=Win64
      compiler: gcc
      os: linux
      addons:
        apt:
          packages: ['gcc-mingw-w64-x86-64', 'g++-mingw-w64-x86-64', 'binutils-mingw-w64-x86-64']
          sources: &sources
            - ubuntu-toolchain-r-test
            - sourceline: 'deb http://mirrors.kernel.org/ubuntu xenial main universe'

    - env: PLATFORM=Unix
      compiler: clang
      os: osx
      osx_image: xcode8

    - env: PLATFORM=Unix COMPILER=gcc-6
      compiler: gcc
      os: linux
      addons:
        apt:
          packages: ['gcc-6', 'g++-6']
          sources: &sources
            - ubuntu-toolchain-r-test

    - env: PLATFORM=Unix COMPILER=gcc-7
      compiler: gcc
      os: linux
      addons:
        apt:
          packages: ['gcc-7', 'g++-7']
          sources: &sources
            - ubuntu-toolchain-r-test

    - env: PLATFORM=Unix COMPILER=clang-3.6
      compiler: clang
      os: linux
      addons:
        apt:
          packages: ['clang-3.6', 'clang++-3.6']
          sources: &sources
            - llvm-toolchain-trusty-3.6

    - env: PLATFORM=Unix COMPILER=clang-5.0
      compiler: clang
      os: linux
      addons:
        apt:
          packages: ['clang-5.0', 'clang++-5.0']
          sources: &sources
            - llvm-toolchain-trusty-5.0

    - env: PLATFORM=Unix COMPILER=clang-5.0 FREETYPE=0
      compiler: clang
      os: linux
      addons:
        apt:
          packages: ['clang-5.0', 'clang++-5.0']
          sources: &sources
            - llvm-toolchain-trusty-5.0

    - env: PLATFORM=Unix COMPILER=clang-5.0 VALGRIND=1
      compiler: clang
      os: linux
      addons:
        apt:
          packages: ['valgrind', 'clang-5.0', 'clang++-5.0']
          sources: &sources
            - llvm-toolchain-trusty-5.0
