# Use new xenial images, should yield newer compilers and packages
sudo: true
dist: xenial
language: cpp

matrix:
  include:
    - os: linux
      addons:
        apt:
          sources:
            - sourceline: 'deb http://archive.ubuntu.com/ubuntu main restricted universe multiverse'
            - ubuntu-toolchain-r-test
          packages:
            - cppcheck
            # imake
            - xutils-dev
            # X11 libaries
            - libxcomposite-dev
            - libxdamage-dev
            - libxfont-dev
            - libxinerama-dev
            - libxpm-dev
            - libxrandr-dev
            - libxtst-dev
            - x11proto-fonts-dev
            # soft requirements
            - quilt
            - x11-xkb-utils

      env:
        - MATRIX_EVAL="CC=gcc && CXX=g++"
        - STATIC_ANALYSIS="yes"
      fail_fast: true

    - os: linux
      addons:
        apt:
          sources:
            - ubuntu-toolchain-r-test
          packages:
            - g++-9
            # imake
            - xutils-dev
            # X11 libaries
            - libxcomposite-dev
            - libxdamage-dev
            - libxfont-dev
            - libxinerama-dev
            - libxpm-dev
            - libxrandr-dev
            - libxtst-dev
            - x11proto-fonts-dev
            # soft requirements
            - quilt
            - x11-xkb-utils

      env:
        - MATRIX_EVAL="CC=gcc-9 && CXX=g++-9"
        - STATIC_ANALYSIS="no"

    - os: linux
      addons:
        apt:
          sources:
            - llvm-toolchain-xenial-3.9
          packages:
            - clang-3.9
            # imake
            - xutils-dev
            # X11 libaries
            - libxcomposite-dev
            - libxdamage-dev
            - libxfont-dev
            - libxinerama-dev
            - libxpm-dev
            - libxrandr-dev
            - libxtst-dev
            - x11proto-fonts-dev
            # soft requirements
            - quilt
            - x11-xkb-utils

      env:
        - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9"
        - STATIC_ANALYSIS="no"

    - os: linux
      addons:
        apt:
          sources:
            - llvm-toolchain-xenial-8
            - ubuntu-toolchain-r-test
          packages:
            - clang-8
            # imake
            - xutils-dev
            # X11 libaries
            - libxcomposite-dev
            - libxdamage-dev
            - libxfont-dev
            - libxinerama-dev
            - libxpm-dev
            - libxrandr-dev
            - libxtst-dev
            - x11proto-fonts-dev
            # soft requirements
            - quilt
            - x11-xkb-utils

      env:
        - MATRIX_EVAL="CC=clang-8 && CXX=clang++-8"
        - STATIC_ANALYSIS="no"

before_install:
   - eval "${MATRIX_EVAL}"
script:
   # run static analysis tools
   - ./run-static-analysis.sh
   # print compiler version
   - ${CC} --version
   # build all packages
   - make