.travis.yml 3.8 KB
Newer Older
1 2
language: c

3 4
sudo: true
dist: trusty
5 6 7 8 9 10 11 12 13 14 15 16 17

cache:
  directories:
    - $HOME/.ccache

addons:
  apt:
    packages:
      - libdrm-dev
      - x11proto-xf86vidmode-dev
      - libexpat1-dev
      - libxcb-dri2-0-dev
      - libx11-xcb-dev
18 19 20 21 22
      - llvm-3.5-dev
      # llvm-config is not in the dev package?
      - llvm-3.5
      # LLVM packaging is broken and misses this dep.
      - libedit-dev
23
      - scons
24 25 26 27 28 29 30 31 32 33 34

env:
  global:
    - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
    - XCB_RELEASES=http://xcb.freedesktop.org/dist
    - XORGMACROS_VERSION=util-macros-1.19.0
    - GLPROTO_VERSION=glproto-1.4.17
    - DRI2PROTO_VERSION=dri2proto-2.8
    - DRI3PROTO_VERSION=dri3proto-1.0
    - PRESENTPROTO_VERSION=presentproto-1.0
    - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
35
    - LIBDRM_VERSION=libdrm-2.4.74
36 37 38 39
    - XCBPROTO_VERSION=xcb-proto-1.11
    - LIBXCB_VERSION=libxcb-1.11
    - LIBXSHMFENCE_VERSION=libxshmfence-1.2
    - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
40 41 42
  matrix:
    - BUILD=make
    - BUILD=scons
43 44 45 46 47

install:
  - export PATH="/usr/lib/ccache:$PATH"
  - pip install --user mako

48 49
  # Since libdrm gets updated in configure.ac regularly, try to pick up the
  # latest version from there.
50
  - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
51 52 53 54 55 56 57
      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

58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
  # 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 $XORG_RELEASES/proto/$DRI3PROTO_VERSION.tar.bz2
  - tar -jxvf $DRI3PROTO_VERSION.tar.bz2
  - (cd $DRI3PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)

  - wget $XORG_RELEASES/proto/$PRESENTPROTO_VERSION.tar.bz2
  - tar -jxvf $PRESENTPROTO_VERSION.tar.bz2
  - (cd $PRESENTPROTO_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
95
  - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-etnaviv-experimental-api && make install)
96 97 98 99 100 101

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

script:
102 103 104 105
  - if test "x$BUILD" = xmake; then
      ./autogen.sh --enable-debug
        --with-egl-platforms=x11,drm
        --with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
106
        --with-gallium-drivers=svga,swrast,vc4,virgl,r300,r600,etnaviv,imx
107
        --disable-llvm-shared-libs
108 109 110 111 112
        ;
      make && make check;
    elif test x$BUILD = xscons; then
      scons;
    fi