OSDN Git Service

travis: add missing libs: xdamage + xfixes
[android-x86/external-mesa.git] / .travis.yml
1 language: c
2
3 sudo: false
4 dist: trusty
5
6 cache:
7   apt: true
8   ccache: true
9
10 env:
11   global:
12     - XORG_RELEASES=http://xorg.freedesktop.org/releases/individual
13     - XCB_RELEASES=http://xcb.freedesktop.org/dist
14     - XORGMACROS_VERSION=util-macros-1.19.0
15     - GLPROTO_VERSION=glproto-1.4.17
16     - DRI2PROTO_VERSION=dri2proto-2.8
17     - LIBPCIACCESS_VERSION=libpciaccess-0.13.4
18     - LIBDRM_VERSION=libdrm-2.4.74
19     - XCBPROTO_VERSION=xcb-proto-1.11
20     - LIBXCB_VERSION=libxcb-1.11
21     - LIBXSHMFENCE_VERSION=libxshmfence-1.2
22     - LIBTXC_DXTN_VERSION=libtxc_dxtn-1.0.1
23     - LIBVDPAU_VERSION=libvdpau-1.1
24     - LIBVA_VERSION=libva-1.6.2
25     - LIBWAYLAND_VERSION=wayland-1.11.1
26     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig
27     - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
28
29 matrix:
30   include:
31     - env:
32         - LABEL="make loaders/classic DRI"
33         - BUILD=make
34         - MAKEFLAGS="-j4"
35         - MAKE_CHECK_COMMAND="make check"
36         - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
37         - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
38         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
39         - GALLIUM_DRIVERS=""
40         - VULKAN_DRIVERS=""
41       addons:
42         apt:
43           packages:
44             - xz-utils
45             - x11proto-xf86vidmode-dev
46             - libexpat1-dev
47             - libx11-xcb-dev
48             - libxdamage-dev
49             - libxfixes-dev
50     - env:
51         # NOTE: Building SWR is 2x (yes two) times slower than all the other
52         # gallium drivers combined.
53         # Start this early so that it doesn't hunder the run time.
54         - LABEL="make Gallium Drivers SWR"
55         - BUILD=make
56         - MAKEFLAGS="-j4"
57         - MAKE_CHECK_COMMAND="true"
58         - LLVM_VERSION=3.9
59         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
60         - OVERRIDE_CC="gcc-5"
61         - OVERRIDE_CXX="g++-5"
62         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
63         - DRI_DRIVERS=""
64         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
65         - GALLIUM_DRIVERS="swr"
66         - VULKAN_DRIVERS=""
67       addons:
68         apt:
69           sources:
70             - ubuntu-toolchain-r-test
71             - llvm-toolchain-trusty-3.9
72           packages:
73             # LLVM packaging is broken and misses these dependencies
74             - libedit-dev
75             # From sources above
76             - g++-5
77             - llvm-3.9-dev
78             # Common
79             - xz-utils
80             - x11proto-xf86vidmode-dev
81             - libexpat1-dev
82             - libx11-xcb-dev
83             - libelf-dev
84     - env:
85         - LABEL="make Gallium Drivers Other"
86         - BUILD=make
87         - MAKEFLAGS="-j4"
88         - MAKE_CHECK_COMMAND="true"
89         - LLVM_VERSION=3.9
90         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
91         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
92         - DRI_DRIVERS=""
93         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
94         - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,radeonsi,freedreno,svga,swrast,vc4,virgl,etnaviv,imx"
95         - VULKAN_DRIVERS=""
96       addons:
97         apt:
98           sources:
99             - llvm-toolchain-trusty-3.9
100           packages:
101             # LLVM packaging is broken and misses these dependencies
102             - libedit-dev
103             # From sources above
104             - llvm-3.9-dev
105             # Common
106             - xz-utils
107             - x11proto-xf86vidmode-dev
108             - libexpat1-dev
109             - libx11-xcb-dev
110             - libelf-dev
111     - env:
112         # NOTE: Analogous to SWR above, building Clover is quite slow.
113         - LABEL="make Gallium ST Clover"
114         - BUILD=make
115         - MAKEFLAGS="-j4"
116         - MAKE_CHECK_COMMAND="true"
117         - LLVM_VERSION=3.6
118         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
119         - OVERRIDE_CC=gcc-4.7
120         - OVERRIDE_CXX=g++-4.7
121         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
122         - DRI_DRIVERS=""
123         - GALLIUM_ST="--disable-dri --enable-opencl --enable-opencl-icd --enable-llvm --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
124         # i915 most likely doesn't work with OpenCL.
125         # Regardless - we're doing a quick build test here.
126         - GALLIUM_DRIVERS="i915"
127         - VULKAN_DRIVERS=""
128       addons:
129         apt:
130           sources:
131             - llvm-toolchain-trusty-3.6
132           packages:
133             - libclc-dev
134             # LLVM packaging is broken and misses these dependencies
135             - libedit-dev
136             - g++-4.7
137             # From sources above
138             - llvm-3.6-dev
139             - clang-3.6
140             - libclang-3.6-dev
141             # Common
142             - xz-utils
143             - x11proto-xf86vidmode-dev
144             - libexpat1-dev
145             - libx11-xcb-dev
146             - libelf-dev
147     - env:
148         - LABEL="make Gallium ST Other"
149         - BUILD=make
150         - MAKEFLAGS="-j4"
151         - MAKE_CHECK_COMMAND="true"
152         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
153         - DRI_DRIVERS=""
154         - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx --enable-gallium-osmesa"
155         # We need swrast for osmesa and nine.
156         # i915 most likely doesn't work with most ST.
157         # Regardless - we're doing a quick build test here.
158         - GALLIUM_DRIVERS="i915,swrast"
159         - VULKAN_DRIVERS=""
160       addons:
161         apt:
162           packages:
163             # Nine requires gcc 4.6... which is the one we have right ?
164             - libxvmc-dev
165             # Build locally, for now.
166             #- libvdpau-dev
167             #- libva-dev
168             - libomxil-bellagio-dev
169             # LLVM packaging is broken and misses these dependencies
170             - libedit-dev
171             # Common
172             - xz-utils
173             - x11proto-xf86vidmode-dev
174             - libexpat1-dev
175             - libx11-xcb-dev
176             - libelf-dev
177     - env:
178         - LABEL="make Vulkan"
179         - BUILD=make
180         - MAKEFLAGS="-j4"
181         - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
182         - LLVM_VERSION=3.9
183         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
184         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
185         - DRI_DRIVERS=""
186         - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx --disable-gallium-osmesa"
187         - GALLIUM_DRIVERS=""
188         - VULKAN_DRIVERS="intel,radeon"
189       addons:
190         apt:
191           sources:
192             - llvm-toolchain-trusty-3.9
193           packages:
194             # LLVM packaging is broken and misses these dependencies
195             - libedit-dev
196             # From sources above
197             - llvm-3.9-dev
198             # Common
199             - xz-utils
200             - x11proto-xf86vidmode-dev
201             - libexpat1-dev
202             - libx11-xcb-dev
203             - libelf-dev
204     - env:
205         - LABEL="scons"
206         - BUILD=scons
207         - SCONSFLAGS="-j4"
208         # Explicitly disable.
209         - SCONS_TARGET="llvm=0"
210         # Keep it symmetrical to the make build.
211         - SCONS_CHECK_COMMAND="scons llvm=0 check"
212       addons:
213         apt:
214           packages:
215             - scons
216             # Common
217             - xz-utils
218             - x11proto-xf86vidmode-dev
219             - libexpat1-dev
220             - libx11-xcb-dev
221             - libelf-dev
222     - env:
223         - LABEL="scons LLVM"
224         - BUILD=scons
225         - SCONSFLAGS="-j4"
226         - SCONS_TARGET="llvm=1"
227         # Keep it symmetrical to the make build.
228         - SCONS_CHECK_COMMAND="scons llvm=1 check"
229         - LLVM_VERSION=3.3
230         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
231       addons:
232         apt:
233           packages:
234             - scons
235             # LLVM packaging is broken and misses these dependencies
236             - libedit-dev
237             - llvm-3.3-dev
238             # Common
239             - xz-utils
240             - x11proto-xf86vidmode-dev
241             - libexpat1-dev
242             - libx11-xcb-dev
243             - libelf-dev
244     - env:
245         - LABEL="scons SWR"
246         - BUILD=scons
247         - SCONSFLAGS="-j4"
248         - SCONS_TARGET="swr=1"
249         - LLVM_VERSION=3.9
250         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
251         # Keep it symmetrical to the make build. There's no actual SWR, yet.
252         - SCONS_CHECK_COMMAND="true"
253         - OVERRIDE_CC="gcc-5"
254         - OVERRIDE_CXX="g++-5"
255       addons:
256         apt:
257           sources:
258             - ubuntu-toolchain-r-test
259             - llvm-toolchain-trusty-3.9
260           packages:
261             - scons
262             # LLVM packaging is broken and misses these dependencies
263             - libedit-dev
264             # From sources above
265             - g++-5
266             - llvm-3.9-dev
267             # Common
268             - xz-utils
269             - x11proto-xf86vidmode-dev
270             - libexpat1-dev
271             - libx11-xcb-dev
272             - libelf-dev
273
274 install:
275   - pip install --user mako
276
277   # Since libdrm gets updated in configure.ac regularly, try to pick up the
278   # latest version from there.
279   - for line in `grep "^LIBDRM.*_REQUIRED=" configure.ac`; do
280       old_ver=`echo $LIBDRM_VERSION | sed 's/libdrm-//'`;
281       new_ver=`echo $line | sed 's/.*REQUIRED=//'`;
282       if `echo "$old_ver,$new_ver" | tr ',' '\n' | sort -Vc 2> /dev/null`; then
283         export LIBDRM_VERSION="libdrm-$new_ver";
284       fi;
285     done
286
287   # Install dependencies where we require specific versions (or where
288   # disallowed by Travis CI's package whitelisting).
289
290   - wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
291   - tar -jxvf $XORGMACROS_VERSION.tar.bz2
292   - (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
293
294   - wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
295   - tar -jxvf $GLPROTO_VERSION.tar.bz2
296   - (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
297
298   - wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
299   - tar -jxvf $DRI2PROTO_VERSION.tar.bz2
300   - (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
301
302   - wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
303   - tar -jxvf $XCBPROTO_VERSION.tar.bz2
304   - (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
305
306   - wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
307   - tar -jxvf $LIBXCB_VERSION.tar.bz2
308   - (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
309
310   - wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
311   - tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
312   - (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
313
314   - wget http://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
315   - tar -jxvf $LIBDRM_VERSION.tar.bz2
316   - (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
317
318   - wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
319   - tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
320   - (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
321
322   # libtxc-dxtn uses the patented S3 Texture Compression
323   # algorithm. Therefore, we don't want to use this library but it is
324   # still possible through setting the USE_TXC_DXTN variable to yes in
325   # the travis web UI.
326   #
327   # According to Wikipedia, the patent expires on October 2, 2017:
328   # https://en.wikipedia.org/wiki/S3_Texture_Compression#Patent
329   - if test "x$USE_TXC_DXTN" = xyes; then
330       wget https://people.freedesktop.org/~cbrill/libtxc_dxtn/$LIBTXC_DXTN_VERSION.tar.bz2;
331       tar -jxvf $LIBTXC_DXTN_VERSION.tar.bz2;
332       (cd $LIBTXC_DXTN_VERSION && ./configure --prefix=$HOME/prefix && make install);
333     fi
334
335   - wget http://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
336   - tar -jxvf $LIBVDPAU_VERSION.tar.bz2
337   - (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
338
339   - wget http://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
340   - tar -jxvf $LIBVA_VERSION.tar.bz2
341   - (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
342
343   - wget http://wayland.freedesktop.org/releases/$LIBWAYLAND_VERSION.tar.xz
344   - tar -axvf $LIBWAYLAND_VERSION.tar.xz
345   - (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
346
347   # Generate the header since one is missing on the Travis instance
348   - mkdir -p linux
349   - printf "%s\n" \
350            "#ifndef _LINUX_MEMFD_H" \
351            "#define _LINUX_MEMFD_H" \
352            "" \
353            "#define __NR_memfd_create 319" \
354            "#define SYS_memfd_create __NR_memfd_create" \
355            "" \
356            "#define MFD_CLOEXEC             0x0001U" \
357            "#define MFD_ALLOW_SEALING       0x0002U" \
358            "" \
359            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
360
361 script:
362   - if test "x$BUILD" = xmake; then
363       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
364       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
365       export CC="$CC -isystem`pwd`";
366
367       ./autogen.sh --enable-debug
368         $DRI_LOADERS
369         --with-dri-drivers=$DRI_DRIVERS
370         $GALLIUM_ST
371         --with-gallium-drivers=$GALLIUM_DRIVERS
372         --with-vulkan-drivers=$VULKAN_DRIVERS
373         --disable-llvm-shared-libs
374         &&
375       make && eval $MAKE_CHECK_COMMAND;
376     fi
377
378   - if test "x$BUILD" = xscons; then
379       test -n "$OVERRIDE_CC" && export CC="$OVERRIDE_CC";
380       test -n "$OVERRIDE_CXX" && export CXX="$OVERRIDE_CXX";
381       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
382     fi