language: cpp

sudo: false
dist: trusty

cache:
  apt: true


matrix:
  include:
    - env:
        - LABEL="make gcc LLVM-3.9"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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:
            - 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
            # LLVM-7 needs libstdc++4.9
            - g++-4.9
            # From sources above
            - llvm-7-dev
            - clang-7
    - env:
        - LABEL="cmake gcc LLVM-3.9"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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:
            - 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
            # LLVM-7 needs libstdc++4.9
            - g++-4.9
            # From sources above
            - llvm-7-dev
            - clang-7

before_install:
    - eval "${MATRIX_EVAL}"

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
