language: cpp sudo: required dist: trusty cache: apt: true ccache: true env: global: - LIBPCIACCESS_VERSION=libpciaccess-0.13.4 - LIBDRM_VERSION=libdrm-2.4.92 - LIBWAYLAND_VERSION=wayland-1.15.92 - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.15 - MESA_VERSION=mesa-18.1.5 - LIBVA_VERSION=libva-1.7.0 - VULKAN_SDK_VERSION=sdk-1.1.77.0 - LIBEVDEV_VERSION=libevdev-1.5.9 - LIBUNWIND_VERSION=libunwind-1.2.1 - 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 - OVERRIDE_CC="gcc-4.9" - OVERRIDE_CXX="g++-4.9" - MAKEFLAGS="-j4" - HWC_FLAGS="" matrix: include: - env: - LABEL="Static analysis" - BUILD=static addons: apt: packages: - clang-format-3.9 - cppcheck install: true script: true - env: - LABEL="Default" - BUILD=make addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - libelf-dev - env: - LABEL="Disable hotplug" - BUILD=make - HWC_FLAGS="--disable-hotplug-support" addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - libelf-dev - env: - LABEL="Dummy compositor" - BUILD=make - HWC_FLAGS="--enable-dummy-compositor" addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - libelf-dev - env: - LABEL="Vulkan compositor" - BUILD=make - HWC_FLAGS="--enable-vulkan" addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - libelf-dev - env: - LABEL="Weston plugin" - BUILD=weston - HWC_FLAGS="" addons: apt: sources: - ubuntu-toolchain-r-test packages: - gcc-4.9 - g++-4.9 - libelf-dev - xutils-dev - libxcb* - libx11-xcb-dev - libxkbcommon-dev - x11proto-*-dev - libxdamage* - libxext-dev - libxshmfence-dev - libwacom-dev - libgtk-3-dev - check - libpam0g-dev - python3 - python3-pip - libudev-dev - libevdev-dev - libmtdev-dev - mtdev-tools before_install: - if test "x$BUILD" = xstatic; then ./travisci/check_patch.py; fi install: - | test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC" test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX" wget http://xorg.freedesktop.org/releases/individual/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 && make install) # Generate this header since one is missing on the Travis instance mkdir -p $HOME/prefix/include/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 */" > $HOME/prefix/include/linux/memfd.h wget http://wayland.freedesktop.org/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 http://wayland.freedesktop.org/releases/$WAYLAND_PROTOCOLS_VERSION.tar.xz tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && \ make install) wget https://mesa.freedesktop.org/archive/$MESA_VERSION.tar.gz tar -zxvf $MESA_VERSION.tar.gz (cd $MESA_VERSION && ./configure --prefix=$HOME/prefix --disable-glx \ --with-platforms=surfaceless,wayland --without-gallium-drivers \ --with-dri-drivers=i965 --with-vulkan-drivers=intel && 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 && make install) wget https://github.com/KhronosGroup/Vulkan-Headers/archive/$VULKAN_SDK_VERSION.tar.gz mv $VULKAN_SDK_VERSION.tar.gz Vulkan-Headers-$VULKAN_SDK_VERSION.tar.gz tar -zxvf Vulkan-Headers-$VULKAN_SDK_VERSION.tar.gz (cd Vulkan-Headers-$VULKAN_SDK_VERSION && \ cmake -DCMAKE_INSTALL_PREFIX=$HOME/prefix && make install) wget https://github.com/KhronosGroup/Vulkan-Loader/archive/$VULKAN_SDK_VERSION.tar.gz mv $VULKAN_SDK_VERSION.tar.gz Vulkan-Loader-$VULKAN_SDK_VERSION.tar.gz tar -zxvf Vulkan-Loader-$VULKAN_SDK_VERSION.tar.gz (cd Vulkan-Loader-$VULKAN_SDK_VERSION && \ cmake -DCMAKE_INSTALL_PREFIX=$HOME/prefix -DBUILD_TESTS=OFF \ -DBUILD_WSI_MIR_SUPPORT=Off -DBUILD_WSI_WAYLAND_SUPPORT=Off \ -DBUILD_WSI_XCB_SUPPORT=Off -DBUILD_WSI_XLIB_SUPPORT=Off && make install) wget https://www.freedesktop.org/software/libevdev/$LIBEVDEV_VERSION.tar.xz tar -axvf $LIBEVDEV_VERSION.tar.xz (cd $LIBEVDEV_VERSION && ./configure --prefix=$HOME/prefix && make install) wget https://download.savannah.nongnu.org/releases/libunwind/$LIBUNWIND_VERSION.tar.gz tar -xzvf $LIBUNWIND_VERSION.tar.gz (cd $LIBUNWIND_VERSION && ./configure --prefix=$HOME/prefix && make install) script: - if test "x$BUILD" = xmake; then ./autogen.sh $HWC_FLAGS && make; fi - | if test "x$BUILD" = xweston; then cp travisci/realpath $HOME/prefix/bin wget https://github.com/ninja-build/ninja/releases/download/v1.8.2/ninja-linux.zip unzip ninja-linux.zip cp ninja $HOME/prefix/bin pip3 install --user pathlib pip3 install --user meson==0.43.0 export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/prefix/lib/x86_64-linux-gnu/pkgconfig git clone git://anongit.freedesktop.org/git/wayland/libinput libinput (cd libinput && meson --prefix=$HOME/prefix -Dlibwacom=false \ -Ddocumentation=false -Ddebug-gui=false -Dtests=false builddir/ && \ ninja -C builddir/ && ninja -C builddir/ install) export WLD=$HOME/prefix git clone -b iahwc-plugin https://github.com/intel/external-weston.git ../weston cd ../weston #HACK: Weston's paths are hardcoded to ../iahwc/.. cp -r ../IA-Hardware-Composer ../iahwc cd - os/linux/weston/build_script.sh --weston-dir=../weston --iahwc-dir=$(pwd) --build fi branches: only: - master