summaryrefslogtreecommitdiffstats
path: root/.travis.yml
blob: 0d87c663bb2e2d169a6b0fc2ecb499ef726a88d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
language: c

sudo: false
dist: trusty

cache:
  apt: true
  ccache: true

addons:
  apt:
    sources:
      - llvm-toolchain-trusty-3.9
    packages:
      - x11proto-xf86vidmode-dev
      - libexpat1-dev
      - libx11-xcb-dev
      # LLVM packaging is broken and misses these dependencies
      - libedit-dev
      - llvm-3.9-dev
      - libelf-dev
      - scons

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
    - 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
    - LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
    - LLVM_VERSION=3.9
    - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
    - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
    - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"

matrix:
  include:
    - env:
        - LABEL="make"
        - BUILD=make
        - MAKEFLAGS=-j2
    - env:
        - LABEL="scons LLVM"
        - BUILD=scons
        - SCONSFLAGS="-j4"
        - SCONS_TARGET="llvm=1"

install:
  - pip install --user mako

  # 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)

  # libtxc-dxtn uses the patented S3 Texture Compression
  # algorithm. Therefore, we don't want to use this library but it is
  # still possible through setting the USE_TXC_DXTN variable to yes in
  # the travis web UI.
  #
  # According to Wikipedia, the patent expires on October 2, 2017:
  # https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
  - if test "x$USE_TXC_DXTN" = xyes; then
      wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
      tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
      (cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
    fi

script:
  - if test "x$BUILD" = xmake; then
      ./autogen.sh --enable-debug
        --with-platforms=x11,drm
        --with-dri-drivers=i915,i965,radeon,r200,swrast,nouveau
        --with-gallium-drivers=i915,nouveau,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx
        --with-vulkan-drivers=radeon
        --disable-llvm-shared-libs
        ;
      make && make check;
    fi

  - if test "x$BUILD" = xscons; then
      scons $SCONS_TARGET && scons $SCONS_TARGET check;
    fi