X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=.travis.yml;h=0156eefb7ade875e2d41f320118f76d68d397849;hb=460d3ce7264f0da6db537fe8f99f6872d33ed269;hp=2c87f60ec12c7a287a2cc031c3e46a258794f1a6;hpb=df82012b2cbac47694a490738c5e6a33e3a69ee3;p=mesa.git diff --git a/.travis.yml b/.travis.yml index 2c87f60ec12..0156eefb7ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,6 +30,38 @@ env: matrix: include: + - env: + - LABEL="meson Vulkan" + - BUILD=meson + - MESON_OPTIONS="-Ddri-drivers= -Dgallium-drivers=" + 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 + - 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 @@ -62,6 +94,8 @@ matrix: - LLVM_CONFIG="llvm-config-${LLVM_VERSION}" - OVERRIDE_CC="gcc-4.8" - OVERRIDE_CXX="g++-4.8" + # 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" @@ -73,6 +107,7 @@ matrix: sources: - llvm-toolchain-trusty-3.9 packages: + - binutils-2.26 # LLVM packaging is broken and misses these dependencies - libedit-dev # From sources above @@ -91,6 +126,8 @@ matrix: - 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" @@ -102,6 +139,7 @@ matrix: sources: - llvm-toolchain-trusty-3.9 packages: + - binutils-2.26 # LLVM packaging is broken and misses these dependencies - libedit-dev # From sources above @@ -113,44 +151,6 @@ matrix: - 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" @@ -305,6 +305,8 @@ matrix: - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check" - 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 --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" @@ -316,6 +318,7 @@ matrix: sources: - llvm-toolchain-trusty-3.9 packages: + - binutils-2.26 # LLVM packaging is broken and misses these dependencies - libedit-dev # From sources above @@ -394,26 +397,43 @@ matrix: - libx11-xcb-dev - libelf-dev - env: - - LABEL="meson Vulkan" + - 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="-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 + - 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: - - pip install --user mako + - pip2 install --user mako # Install the latest meson from pip, since the version in the ubuntu repos is # often quite old. @@ -434,62 +454,64 @@ install: # 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) + - | + 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/$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 $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/$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 $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 $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 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 $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://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 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/$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) + 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/ + # 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" \ + # 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" \ "" \ @@ -500,6 +522,7 @@ install: "#define MFD_ALLOW_SEALING 0x0002U" \ "" \ "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h + fi script: - if test "x$BUILD" = xmake; then @@ -507,7 +530,7 @@ script: test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX"; test -n "$OVERRIDE_PATH" && export PATH="$OVERRIDE_PATH:$PATH"; - export CC="$CC -isystem`pwd`"; + export CFLAGS="$CFLAGS -isystem`pwd`"; ./autogen.sh --enable-debug $LIBUNWIND_FLAGS @@ -528,7 +551,7 @@ script: fi - if test "x$BUILD" = xmeson; then - export CC="$CC -isystem`pwd`"; + export CFLAGS="$CFLAGS -isystem`pwd`"; meson _build $MESON_OPTIONS; - ninja -C _build test; + ninja -C _build; fi