language: c

sudo: false
dist: trusty

cache:
  apt: true
  ccache: true

env:
  global:
    - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
    - XCB_RELEASES=http://xcb.freedesktop.org/dist
    - WAYLAND_RELEASES=http://wayland.freedesktop.org/releases
    - XORGMACROS_VERSION=util-macros-1.19.0
    - GLPROTO_VERSION=glproto-1.4.17
    - DRI2PROTO_VERSION=dri2proto-2.8
    - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
    - LIBDRM_VERSION=libdrm-2.4.74
    - XCBPROTO_VERSION=xcb-proto-1.11
    - LIBXCB_VERSION=libxcb-1.11
    - LIBXSHMFENCE_VERSION=libxshmfence-1.2
    - LIBVDPAU_VERSION=libvdpau-1.1
    - LIBVA_VERSION=libva-1.6.2
    - LIBWAYLAND_VERSION=wayland-1.11.1
    - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
    - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
    - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
    - PATH="$HOME/prefix/bin:$PATH"

matrix:
  include:
    - env:
        - LABEL="make loaders/classic DRI"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="make check"
        - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
        - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS=""
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--disable-libunwind"
      addons:
        apt:
          packages:
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libxdamage-dev
            - libxfixes-dev
    - env:
        # NOTE: Building SWR is 2x (yes two) times slower than all the other
        # gallium drivers combined.
        # Start this early so that it doesn't hunder the run time.
        - LABEL="make Gallium Drivers SWR"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - OVERRIDE_CC="gcc-4.8"
        - OVERRIDE_CXX="g++-4.8"
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS="swr"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-3.9-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        - LABEL="make Gallium Drivers Other"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-3.9-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        # NOTE: Analogous to SWR above, building Clover is quite slow.
        - LABEL="make Gallium ST Clover"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=3.6
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - OVERRIDE_CC=gcc-4.7
        - OVERRIDE_CXX=g++-4.7
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        # i915 most likely doesn't work with OpenCL.
        # Regardless - we're doing a quick build test here.
        - GALLIUM_DRIVERS="i915"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.6
          packages:
            - libclc-dev
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            - g++-4.7
            # From sources above
            - llvm-3.6-dev
            - clang-3.6
            - libclang-3.6-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        # NOTE: Analogous to SWR above, building Clover is quite slow.
        - LABEL="make Gallium ST Clover LLVM-3.9"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - OVERRIDE_CC=gcc-4.7
        - OVERRIDE_CXX=g++-4.7
        # New binutils linker is required for llvm-3.9
        - OVERRIDE_PATH=/usr/lib/binutils-2.26/bin
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS="r600,radeonsi"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            - binutils-2.26
            - libclc-dev
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            - g++-4.7
            # From sources above
            - llvm-3.9-dev
            - clang-3.9
            - libclang-3.9-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        # NOTE: Analogous to SWR above, building Clover is quite slow.
        - LABEL="make Gallium ST Clover LLVM-4.0"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=4.0
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - OVERRIDE_CC=gcc-4.8
        - OVERRIDE_CXX=g++-4.8
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS="r600,radeonsi"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-4.0
          packages:
            - libclc-dev
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-4.0-dev
            - clang-4.0
            - libclang-4.0-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        # NOTE: Analogous to SWR above, building Clover is quite slow.
        - LABEL="make Gallium ST Clover LLVM-5.0"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=5.0
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - OVERRIDE_CC=gcc-4.8
        - OVERRIDE_CXX=g++-4.8
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS="r600,radeonsi"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-5.0
          packages:
            - libclc-dev
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            - g++-4.8
            # From sources above
            - llvm-5.0-dev
            - clang-5.0
            - libclang-5.0-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        - LABEL="make Gallium ST Other"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=3.3
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx-bellagio --enable-gallium-osmesa"
        # We need swrast for osmesa and nine.
        # i915 most likely doesn't work with most ST.
        # Regardless - we're doing a quick build test here.
        - GALLIUM_DRIVERS="i915,swrast"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          packages:
            # We actually want to test against llvm-3.3
            - llvm-3.3-dev
            # Nine requires gcc 4.6... which is the one we have right ?
            - libxvmc-dev
            # Build locally, for now.
            #- libvdpau-dev
            #- libva-dev
            - libomxil-bellagio-dev
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        - LABEL="make Vulkan"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
        - DRI_DRIVERS=""
        - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
        - GALLIUM_DRIVERS=""
        - VULKAN_DRIVERS="intel,radeon"
        - LIBUNWIND_FLAGS="--disable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-3.9-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
    - env:
        - LABEL="scons"
        - BUILD=scons
        - SCONSFLAGS="-j4"
        # Explicitly disable.
        - SCONS_TARGET="llvm=0"
        # Keep it symmetrical to the make build.
        - SCONS_CHECK_COMMAND="scons llvm=0 check"
      addons:
        apt:
          packages:
            - scons
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
    - env:
        - LABEL="scons LLVM"
        - BUILD=scons
        - SCONSFLAGS="-j4"
        - SCONS_TARGET="llvm=1"
        # Keep it symmetrical to the make build.
        - SCONS_CHECK_COMMAND="scons llvm=1 check"
        - LLVM_VERSION=3.3
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
      addons:
        apt:
          packages:
            - scons
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            - llvm-3.3-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
    - env:
        - LABEL="scons SWR"
        - BUILD=scons
        - SCONSFLAGS="-j4"
        - SCONS_TARGET="swr=1"
        - LLVM_VERSION=3.9
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        # Keep it symmetrical to the make build. There's no actual SWR, yet.
        - SCONS_CHECK_COMMAND="true"
        - OVERRIDE_CC="gcc-4.8"
        - OVERRIDE_CXX="g++-4.8"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            - scons
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-3.9-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
    - env:
        - LABEL="meson Vulkan"
        - BUILD=meson
        - MESON_OPTIONS="-Dbuild-tests=true"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-3.9-dev
            # Common
            - xz-utils
            - libexpat1-dev
            - libelf-dev
            - python3-pip

install:
  - pip install --user mako

  # Install the latest meson from pip, since the version in the ubuntu repos is
  # often quite old.
  - if test "x$BUILD" = xmeson; then
      pip3 install --user meson;
    fi

  # Since libdrm gets updated in configure.ac regularly, try to pick up the
  # latest version from there.
  - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
      old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
      new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
      if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
        export LIBDRM_VERSION="libdrm-$new_ver";
      fi;
    done

  # Install dependencies where we require specific versions (or where
  # disallowed by Travis CI's package whitelisting).

  - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
  - tar -jxvf $XORGMACROS_VERSION.tar.bz2
  - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
  - tar -jxvf $GLPROTO_VERSION.tar.bz2
  - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
  - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
  - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
  - tar -jxvf $XCBPROTO_VERSION.tar.bz2
  - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
  - tar -jxvf $LIBXCB_VERSION.tar.bz2
  - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
  - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
  - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
  - tar -jxvf $LIBDRM_VERSION.tar.bz2
  - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)

  - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
  - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
  - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
  - tar -jxvf $LIBVDPAU_VERSION.tar.bz2
  - (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
  - tar -jxvf $LIBVA_VERSION.tar.bz2
  - (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)

  - wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
  - tar -axvf $LIBWAYLAND_VERSION.tar.xz
  - (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)

  - wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
  - tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
  - (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)

  # Meson requires ninja >= 1.6, but trusty has 1.3.x
  - wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip;
  - unzip ninja-linux.zip
  - mv ninja $HOME/prefix/bin/

  # Generate the header since one is missing on the Travis instance
  - mkdir -p linux
  - printf "%s\n" \
           "#ifndef _LINUX_MEMFD_H" \
           "#define _LINUX_MEMFD_H" \
           "" \
           "#define __NR_memfd_create 319" \
           "#define SYS_memfd_create __NR_memfd_create" \
           "" \
           "#define MFD_CLOEXEC             0x0001U" \
           "#define MFD_ALLOW_SEALING       0x0002U" \
           "" \
           "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h

script:
  - if test "x$BUILD" = xmake; then
      test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
      test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
      test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH";

      export CFLAGS="$CFLAGS -isystem`pwd`";

      ./autogen.sh --enable-debug
        $LIBUNWIND_FLAGS
        $DRI_LOADERS
        --with-dri-drivers=$DRI_DRIVERS
        $GALLIUM_ST
        --with-gallium-drivers=$GALLIUM_DRIVERS
        --with-vulkan-drivers=$VULKAN_DRIVERS
        --disable-llvm-shared-libs
        &&
      make && eval $MAKE_CHECK_COMMAND;
    fi

  - if test "x$BUILD" = xscons; then
      test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
      test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
      scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
    fi

  - if test "x$BUILD" = xmeson; then
      export CFLAGS="$CFLAGS -isystem`pwd`";
      meson _build $MESON_OPTIONS;
      ninja -C _build test;
    fi
