language: c

sudo: false
dist: trusty

cache:
  apt: true
  ccache: true

env:
  global:
    - XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
    - XCB_RELEASES=https://xcb.freedesktop.org/dist
    - WAYLAND_RELEASES=https://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.13
    - RANDRPROTO_VERSION=randrproto-1.3.0
    - LIBXRANDR_VERSION=libXrandr-1.3.0
    - LIBXCB_VERSION=libxcb-1.13
    - LIBXSHMFENCE_VERSION=libxshmfence-1.2
    - LIBVDPAU_VERSION=libvdpau-1.1
    - LIBVA_VERSION=libva-1.7.0
    - LIBWAYLAND_VERSION=wayland-1.15.0
    - 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="meson Vulkan"
        - BUILD=meson
        - MESON_OPTIONS="-Ddri-drivers=[] -Dgallium-drivers=[]"
        - LLVM_VERSION=6.0
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-6.0
            # llvm-6 depends on gcc-4.9 which is not in main repo
            - ubuntu-toolchain-r-test
          packages:
            # From sources above
            - llvm-6.0-dev
            # Common
            - xz-utils
            - libexpat1-dev
            - libelf-dev
            - python3-pip
    - env:
        - LABEL="meson loaders/classic DRI"
        - BUILD=meson
        - MESON_OPTIONS="-Dvulkan-drivers=[] -Dgallium-drivers=[]"
      addons:
        apt:
          packages:
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libxdamage-dev
            - libxfixes-dev
            - python3-pip
    - 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=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="--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-5.0
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-5.0-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
            - libunwind8-dev
    - env:
        - LABEL="make Gallium Drivers RadeonSI"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=6.0
        - 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="radeonsi"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-6.0
            # llvm-6 depends on gcc-4.9 which is not in main repo
            - ubuntu-toolchain-r-test
          packages:
            # From sources above
            - llvm-6.0-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}"
        # 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="--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,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
        - VULKAN_DRIVERS=""
        - LIBUNWIND_FLAGS="--enable-libunwind"
      addons:
        apt:
          sources:
            - llvm-toolchain-trusty-3.9
          packages:
            - binutils-2.26
            # 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 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"
        - 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"
        - 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"
        - 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:
        # NOTE: Analogous to SWR above, building Clover is quite slow.
        - LABEL="make Gallium ST Clover LLVM-6.0"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="true"
        - LLVM_VERSION=6.0
        - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
        - 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-6.0
            # llvm-6 depends on gcc-4.9 which is not in main repo
            - ubuntu-toolchain-r-test
          packages:
            - libclc-dev
            # From sources above
            - llvm-6.0-dev
            - clang-6.0
            - libclang-6.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=6.0
        - 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-6.0
            # llvm-6 depends on gcc-4.9 which is not in main repo
            - ubuntu-toolchain-r-test
          packages:
            # From sources above
            - llvm-6.0-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:
            # 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:
            # 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=5.0
        - 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-5.0
          packages:
            # LLVM packaging is broken and misses these dependencies
            - libedit-dev
            # From sources above
            - llvm-5.0-dev
            # Common
            - xz-utils
            - x11proto-xf86vidmode-dev
            - libexpat1-dev
            - libx11-xcb-dev
            - libelf-dev
    - env:
        - LABEL="macOS make"
        - BUILD=make
        - MAKEFLAGS="-j4"
        - MAKE_CHECK_COMMAND="make check"
        - DRI_LOADERS="--with-platforms=x11 --disable-egl"
      os: osx
    - env:
        - LABEL="macOS meson"
        - BUILD=meson
        - MESON_OPTIONS="-Degl=false"
      os: osx

before_install:
  - |
    if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext
      # Set PATH for homebrew pip3 installs
      PATH="$HOME/Library/Python/3.6/bin:${PATH}"
      # Set PKG_CONFIG_PATH for keg-only expat
      PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
      # Set PATH for keg-only gettext
      PATH="/usr/local/opt/gettext/bin:${PATH}"

      # Install xquartz for prereqs ...
      XQUARTZ_VERSION="2.7.11"
      wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
      hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
      sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
      hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
      # ... and set paths
      PATH="/opt/X11/bin:${PATH}"
      PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
      ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
    fi

install:
  - pip2 install --user mako

  # Install a more modern meson from pip, since the version in the
  # ubuntu repos is often quite old. Avoid >=0.45.0 as it needs python
  # 3.5+
  - if test "x$BUILD" = xmeson; then
      pip3 install --user "meson<0.45.0";
    fi

  # Install a more modern scons from pip.
  - if test "x$BUILD" = xscons; then
      pip2 install --user "scons>=2.4";
    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).

  - |
    if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
      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 https://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/proto/$RANDRPROTO_VERSION.tar.bz2
      tar -jxvf $RANDRPROTO_VERSION.tar.bz2
      (cd $RANDRPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)

      wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
      tar -jxvf $LIBXRANDR_VERSION.tar.bz2
      (cd $LIBXRANDR_VERSION && ./configure --prefix=$HOME/prefix && 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 https://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 https://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 this header since one is missing on the Travis instance
      mkdir -p linux
      printf "%s\n" \
           "#ifndef _LINUX_MEMFD_H" \
           "#define _LINUX_MEMFD_H" \
           "" \
           "#define MFD_CLOEXEC             0x0001U" \
           "#define MFD_ALLOW_SEALING       0x0002U" \
           "" \
           "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h

      # Generate this header, including the missing SYS_memfd_create
      # macro, which is not provided by the header in the Travis
      # instance
      mkdir -p sys
      printf "%s\n" \
           "#ifndef _SYSCALL_H" \
           "#define _SYSCALL_H      1" \
           "" \
           "#include <asm/unistd.h>" \
           "" \
           "#ifndef _LIBC" \
           "# include <bits/syscall.h>" \
           "#endif" \
           "" \
           "#ifndef __NR_memfd_create" \
           "# define __NR_memfd_create 319 /* Taken from <asm/unistd_64.h> */" \
           "#endif" \
           "" \
           "#ifndef SYS_memfd_create" \
           "# define SYS_memfd_create __NR_memfd_create" \
           "#endif" \
           "" \
           "#endif" > sys/syscall.h
    fi

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`";

      mkdir build &&
      cd build &&
      ../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

      # Travis CI has moved to LLVM 5.0, and meson is detecting
      # automatically the available version in /usr/local/bin based on
      # the PATH env variable order preference.
      #
      # As for 0.44.x, Meson cannot receive the path to the
      # llvm-config binary as a configuration parameter. See
      # https://github.com/mesonbuild/meson/issues/2887 and
      # https://github.com/dcbaker/meson/commit/7c8b6ee3fa42f43c9ac7dcacc61a77eca3f1bcef
      #
      # We want to use the custom (APT) installed version. Therefore,
      # let's make Meson find our wanted version sooner than the one
      # at /usr/local/bin
      #
      # Once this is corrected, we would still need a patch similar
      # to:
      # https://lists.freedesktop.org/archives/mesa-dev/2017-December/180217.html
      test -f /usr/bin/$LLVM_CONFIG && ln -s /usr/bin/$LLVM_CONFIG $HOME/prefix/bin/llvm-config

      export CFLAGS="$CFLAGS -isystem`pwd`"
      meson _build $MESON_OPTIONS
      ninja -C _build
    fi
