language: cpp

sudo: false
dist: trusty

cache:
  apt: true


matrix:
  include:
    - env:
        - LABEL="make gcc LLVM-3.9"
        - LLVM_VERSION=3.9
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-3.9-dev
            - clang-3.9
    - env:
        - LABEL="make gcc LLVM-4.0"
        - LLVM_VERSION=4.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-4.0
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-4.0-dev
            - clang-4.0
    - env:
        - LABEL="make gcc LLVM-5.0"
        - LLVM_VERSION=5.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-5.0
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-5.0-dev
            - clang-5.0
    - env:
        - LABEL="make gcc LLVM-6.0"
        - LLVM_VERSION=6.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
        # llvm passes -Werror=date-time which is only supported in gcc-4.9+
        - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-6.0
            - ubuntu-toolchain-r-test
          packages:
            - libedit-dev
            # LLVM-6 needs libstdc++4.9
            - g++-4.9
            # From sources above
            - llvm-6.0-dev
            - clang-6.0
    - env:
        - LABEL="make gcc LLVM-7"
        - LLVM_VERSION=7
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
        - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
      addons:
        apt:
          sources:
            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
              key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
            - ubuntu-toolchain-r-test
          packages:
            - libedit-dev
            - g++-6
            # From sources above
            - llvm-7-dev
            - clang-7
    - env:
        - LABEL="cmake gcc LLVM-3.9"
        - LLVM_VERSION=3.9
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-3.9-dev
            - clang-3.9
    - env:
        - LABEL="cmake gcc LLVM-4.0"
        - LLVM_VERSION=4.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-4.0
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-4.0-dev
            - clang-4.0
    - env:
        - LABEL="cmake gcc LLVM-5.0"
        - LLVM_VERSION=5.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-5.0
          packages:
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-5.0-dev
            - clang-5.0
    - env:
        - LABEL="cmake gcc LLVM-6.0"
        - LLVM_VERSION=6.0
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
        # llvm passes -Werror=date-time which is only supported in gcc-4.9+
        - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-6.0
            - ubuntu-toolchain-r-test
          packages:
            - libedit-dev
            # LLVM-6 needs libstdc++4.9
            - g++-4.9
            # From sources above
            - llvm-6.0-dev
            - clang-6.0
    - env:
        - LABEL="cmake gcc LLVM-7"
        - LLVM_VERSION=7
        - CHECK_FILES="barts-r600--.bc cayman-r600--.bc cedar-r600--.bc cypress-r600--.bc tahiti-amdgcn--.bc amdgcn--amdhsa.bc tahiti-amdgcn-mesa-mesa3d.bc nvptx--nvidiacl.bc nvptx64--nvidiacl.bc"
        - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6"
      addons:
        apt:
          sources:
            - sourceline: 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty-7 main'
              key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
            - ubuntu-toolchain-r-test
          packages:
            - libedit-dev
            - g++-6
            # From sources above
            - llvm-7-dev
            - clang-7

before_install:
    - eval "${MATRIX_EVAL}"
    - export LLVM_CONFIG="llvm-config-${LLVM_VERSION}"

script:
  - if $(echo $LABEL | grep cmake > /dev/null) ; then
        mkdir built_libs && cd built_libs && cmake .. -DLLVM_CONFIG=$LLVM_CONFIG && make -j4 && cd .. ;
    else
        $PYTHON ./configure.py --with-llvm-config=$LLVM_CONFIG --with-cxx-compiler=$CXX && make -j4;
    fi
  - ret=0;
    for f in $CHECK_FILES; do
        ./check_external_calls.sh built_libs/$f || ret=1;
    done;
    test $ret -eq 0
