OSDN Git Service

compiler/types: Serialize/deserialize subpass input types correctly
[android-x86/external-mesa.git] / .travis.yml
1 language: c
2
3 dist: xenial
4
5 cache:
6   apt: true
7   ccache: true
8
9 env:
10   global:
11     - XORG_RELEASES=https://xorg.freedesktop.org/releases/individual
12     - XCB_RELEASES=https://xcb.freedesktop.org/dist
13     - WAYLAND_RELEASES=https://wayland.freedesktop.org/releases
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.95
19     - XCBPROTO_VERSION=xcb-proto-1.13
20     - RANDRPROTO_VERSION=randrproto-1.3.0
21     - LIBXRANDR_VERSION=libXrandr-1.3.0
22     - LIBXCB_VERSION=libxcb-1.13
23     - LIBXSHMFENCE_VERSION=libxshmfence-1.2
24     - LIBVDPAU_VERSION=libvdpau-1.1
25     - LIBVA_VERSION=libva-1.7.0
26     - LIBWAYLAND_VERSION=wayland-1.15.0
27     - WAYLAND_PROTOCOLS_VERSION=wayland-protocols-1.8
28     - PKG_CONFIG_PATH=$HOME/prefix/lib/pkgconfig:$HOME/prefix/share/pkgconfig
29     - LD_LIBRARY_PATH="$HOME/prefix/lib:$LD_LIBRARY_PATH"
30     - PATH="$HOME/prefix/bin:$PATH"
31
32 matrix:
33   include:
34     - env:
35         - LABEL="meson Vulkan"
36         - BUILD=meson
37         - UNWIND="false"
38         - DRI_LOADERS="-Dglx=disabled -Dgbm=false -Degl=false -Dplatforms=x11,wayland,drm -Dosmesa=none"
39         - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
40         - VULKAN_DRIVERS="intel,amd"
41         - LLVM_VERSION=7
42         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
43       addons:
44         apt:
45           sources:
46             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
47               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
48           packages:
49             - llvm-7-dev
50             # Common
51             - xz-utils
52             - libexpat1-dev
53             - libx11-xcb-dev
54             - libelf-dev
55             - python3.5
56             - python3-pip
57             - python3-setuptools
58     - env:
59         - LABEL="meson loaders/classic DRI"
60         - BUILD=meson
61         - UNWIND="false"
62         - DRI_LOADERS="-Dglx=dri -Dgbm=true -Degl=true -Dplatforms=x11,wayland,drm,surfaceless -Dosmesa=classic"
63         - DRI_DRIVERS="i915,i965,r100,r200,swrast,nouveau"
64         - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
65       addons:
66         apt:
67           packages:
68             - xz-utils
69             - x11proto-xf86vidmode-dev
70             - libxxf86vm-dev
71             - libexpat1-dev
72             - libx11-xcb-dev
73             - libxdamage-dev
74             - libxfixes-dev
75             - python3.5
76             - python3-pip
77             - python3-setuptools
78     - env:
79         - LABEL="make loaders/classic DRI"
80         - BUILD=make
81         - MAKEFLAGS="-j4"
82         - MAKE_CHECK_COMMAND="make check"
83         - DRI_LOADERS="--enable-glx --enable-gbm --enable-egl --with-platforms=x11,drm,surfaceless,wayland --enable-osmesa"
84         - DRI_DRIVERS="i915,i965,radeon,r200,swrast,nouveau"
85         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
86         - GALLIUM_DRIVERS=""
87         - VULKAN_DRIVERS=""
88         - LIBUNWIND_FLAGS="--disable-libunwind"
89       addons:
90         apt:
91           packages:
92             - xz-utils
93             - x11proto-xf86vidmode-dev
94             - libxxf86vm-dev
95             - libexpat1-dev
96             - libx11-xcb-dev
97             - libxdamage-dev
98             - libxfixes-dev
99             - python3-pip
100             - python3-setuptools
101     - env:
102         # NOTE: Building SWR is 2x (yes two) times slower than all the other
103         # gallium drivers combined.
104         # Start this early so that it doesn't hunder the run time.
105         - LABEL="meson Gallium Drivers SWR"
106         - BUILD=meson
107         - UNWIND="true"
108         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
109         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
110         - GALLIUM_DRIVERS="swr"
111         - LLVM_VERSION=6.0
112         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
113       addons:
114         apt:
115           packages:
116             - llvm-6.0-dev
117             # Common
118             - xz-utils
119             - libexpat1-dev
120             - libx11-xcb-dev
121             - libelf-dev
122             - libunwind8-dev
123             - python3.5
124             - python3-pip
125             - python3-setuptools
126     - env:
127         - LABEL="meson Gallium Drivers RadeonSI"
128         - BUILD=meson
129         - UNWIND="true"
130         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
131         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
132         - GALLIUM_DRIVERS="radeonsi"
133         - LLVM_VERSION=7
134         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
135       addons:
136         apt:
137           sources:
138             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
139               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
140           packages:
141             # From sources above
142             - llvm-7-dev
143             # Common
144             - xz-utils
145             - libexpat1-dev
146             - libx11-xcb-dev
147             - libelf-dev
148             - libunwind8-dev
149             - python3.5
150             - python3-pip
151             - python3-setuptools
152     - env:
153         - LABEL="meson Gallium Drivers Other"
154         - BUILD=meson
155         - UNWIND="true"
156         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
157         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
158         - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
159         - LLVM_VERSION=5.0
160         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
161       addons:
162         apt:
163           packages:
164             # LLVM packaging is broken and misses these dependencies
165             - libedit-dev
166             - llvm-5.0-dev
167             # Common
168             - xz-utils
169             - libexpat1-dev
170             - libx11-xcb-dev
171             - libelf-dev
172             - libunwind8-dev
173             - python3.5
174             - python3-pip
175             - python3-setuptools
176     - env:
177         - LABEL="meson Gallium ST Clover LLVM-5.0"
178         - BUILD=meson
179         - UNWIND="true"
180         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
181         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
182         - GALLIUM_DRIVERS="r600"
183         - LLVM_VERSION=5.0
184         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
185       addons:
186         apt:
187           packages:
188             - libclc-dev
189             # LLVM packaging is broken and misses these dependencies
190             - libedit-dev
191             - llvm-5.0-dev
192             - clang-5.0
193             - libclang-5.0-dev
194             # Common
195             - xz-utils
196             - libexpat1-dev
197             - libx11-xcb-dev
198             - libelf-dev
199             - libunwind8-dev
200             - python3-pip
201             - python3-setuptools
202     - env:
203         - LABEL="meson Gallium ST Clover LLVM-6.0"
204         - BUILD=meson
205         - UNWIND="true"
206         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
207         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
208         - GALLIUM_DRIVERS="r600"
209         - LLVM_VERSION=6.0
210         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
211       addons:
212         apt:
213           packages:
214             - libclc-dev
215             - llvm-6.0-dev
216             - clang-6.0
217             - libclang-6.0-dev
218             # Common
219             - xz-utils
220             - libexpat1-dev
221             - libx11-xcb-dev
222             - libelf-dev
223             - libunwind8-dev
224             - python3.5
225             - python3-pip
226             - python3-setuptools
227     - env:
228         - LABEL="meson Gallium ST Clover LLVM-7"
229         - BUILD=meson
230         - UNWIND="true"
231         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
232         - GALLIUM_ST="-Ddri3=false -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=icd"
233         - GALLIUM_DRIVERS="r600,radeonsi"
234         - LLVM_VERSION=7
235         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
236       addons:
237         apt:
238           sources:
239             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
240               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
241           packages:
242             - libclc-dev
243             # From sources above
244             - llvm-7-dev
245             - clang-7
246             - libclang-7-dev
247             # Common
248             - xz-utils
249             - libexpat1-dev
250             - libx11-xcb-dev
251             - libelf-dev
252             - libunwind8-dev
253             - python3.5
254             - python3-pip
255             - python3-setuptools
256     - env:
257         - LABEL="meson Gallium ST Other"
258         - BUILD=meson
259         - UNWIND="true"
260         - DRI_LOADERS="-Dglx=disabled -Degl=false -Dgbm=false"
261         - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=true -Dgallium-xvmc=true -Dgallium-omx=bellagio -Dgallium-va=true -Dgallium-xa=true -Dgallium-nine=true -Dgallium-opencl=disabled -Dosmesa=gallium"
262         # We need swrast for osmesa and nine.
263         # Nouveau supports, or builds at least against all ST.
264         - GALLIUM_DRIVERS="nouveau,swrast"
265         - LLVM_VERSION=5.0
266         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
267       addons:
268         apt:
269           packages:
270             - llvm-5.0-dev
271             # LLVM packaging is broken and misses these dependencies
272             - libedit-dev
273             # Nine requires gcc 4.6... which is the one we have right ?
274             - libxvmc-dev
275             # Build locally, for now.
276             #- libvdpau-dev
277             #- libva-dev
278             - libomxil-bellagio-dev
279             # Common
280             - xz-utils
281             - libexpat1-dev
282             - libx11-xcb-dev
283             - libelf-dev
284             - libunwind8-dev
285             - python3.5
286             - python3-pip
287             - python3-setuptools
288     - env:
289         # NOTE: Building SWR is 2x (yes two) times slower than all the other
290         # gallium drivers combined.
291         # Start this early so that it doesn't hunder the run time.
292         - LABEL="make Gallium Drivers SWR"
293         - BUILD=make
294         - MAKEFLAGS="-j4"
295         - MAKE_CHECK_COMMAND="true"
296         - LLVM_VERSION=6.0
297         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
298         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
299         - DRI_DRIVERS=""
300         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
301         - GALLIUM_DRIVERS="swr"
302         - VULKAN_DRIVERS=""
303         - LIBUNWIND_FLAGS="--enable-libunwind"
304       addons:
305         apt:
306           packages:
307             - llvm-6.0-dev
308             # Common
309             - xz-utils
310             - libexpat1-dev
311             - libx11-xcb-dev
312             - libelf-dev
313             - libunwind8-dev
314             - python3-pip
315             - python3-setuptools
316     - env:
317         - LABEL="make Gallium Drivers RadeonSI"
318         - BUILD=make
319         - MAKEFLAGS="-j4"
320         - MAKE_CHECK_COMMAND="true"
321         - LLVM_VERSION=7
322         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
323         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
324         - DRI_DRIVERS=""
325         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
326         - GALLIUM_DRIVERS="radeonsi"
327         - VULKAN_DRIVERS=""
328         - LIBUNWIND_FLAGS="--enable-libunwind"
329       addons:
330         apt:
331           sources:
332             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
333               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
334           packages:
335             # From sources above
336             - llvm-7-dev
337             # Common
338             - xz-utils
339             - libexpat1-dev
340             - libx11-xcb-dev
341             - libelf-dev
342             - libunwind8-dev
343             - python3-pip
344             - python3-setuptools
345     - env:
346         - LABEL="make Gallium Drivers Other"
347         - BUILD=make
348         - MAKEFLAGS="-j4"
349         - MAKE_CHECK_COMMAND="true"
350         - LLVM_VERSION=3.9
351         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
352         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
353         - DRI_DRIVERS=""
354         - GALLIUM_ST="--enable-dri --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
355         - GALLIUM_DRIVERS="i915,nouveau,pl111,r300,r600,freedreno,svga,swrast,v3d,vc4,virgl,etnaviv,imx"
356         - VULKAN_DRIVERS=""
357         - LIBUNWIND_FLAGS="--enable-libunwind"
358       addons:
359         apt:
360           packages:
361             # LLVM packaging is broken and misses these dependencies
362             - libedit-dev
363             - llvm-3.9-dev
364             # Common
365             - xz-utils
366             - libexpat1-dev
367             - libx11-xcb-dev
368             - libelf-dev
369             - libunwind8-dev
370             - python3-pip
371             - python3-setuptools
372     - env:
373         - LABEL="make Gallium ST Clover LLVM-3.9"
374         - BUILD=make
375         - MAKEFLAGS="-j4"
376         - MAKE_CHECK_COMMAND="true"
377         - LLVM_VERSION=3.9
378         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
379         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
380         - DRI_DRIVERS=""
381         - 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"
382         - GALLIUM_DRIVERS="r600"
383         - VULKAN_DRIVERS=""
384         - LIBUNWIND_FLAGS="--enable-libunwind"
385       addons:
386         apt:
387           packages:
388             - libclc-dev
389             # LLVM packaging is broken and misses these dependencies
390             - libedit-dev
391             - llvm-3.9-dev
392             - clang-3.9
393             - libclang-3.9-dev
394             # Common
395             - xz-utils
396             - libexpat1-dev
397             - libx11-xcb-dev
398             - libelf-dev
399             - libunwind8-dev
400             - python3-pip
401             - python3-setuptools
402     - env:
403         - LABEL="make Gallium ST Clover LLVM-4.0"
404         - BUILD=make
405         - MAKEFLAGS="-j4"
406         - MAKE_CHECK_COMMAND="true"
407         - LLVM_VERSION=4.0
408         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
409         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
410         - DRI_DRIVERS=""
411         - 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"
412         - GALLIUM_DRIVERS="r600"
413         - VULKAN_DRIVERS=""
414         - LIBUNWIND_FLAGS="--enable-libunwind"
415       addons:
416         apt:
417           packages:
418             - libclc-dev
419             # LLVM packaging is broken and misses these dependencies
420             - libedit-dev
421             - llvm-4.0-dev
422             - clang-4.0
423             - libclang-4.0-dev
424             # Common
425             - xz-utils
426             - libexpat1-dev
427             - libx11-xcb-dev
428             - libelf-dev
429             - libunwind8-dev
430             - python3-pip
431             - python3-setuptools
432     - env:
433         - LABEL="make Gallium ST Clover LLVM-5.0"
434         - BUILD=make
435         - MAKEFLAGS="-j4"
436         - MAKE_CHECK_COMMAND="true"
437         - LLVM_VERSION=5.0
438         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
439         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
440         - DRI_DRIVERS=""
441         - 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"
442         - GALLIUM_DRIVERS="r600"
443         - VULKAN_DRIVERS=""
444         - LIBUNWIND_FLAGS="--enable-libunwind"
445       addons:
446         apt:
447           packages:
448             - libclc-dev
449             # LLVM packaging is broken and misses these dependencies
450             - libedit-dev
451             - llvm-5.0-dev
452             - clang-5.0
453             - libclang-5.0-dev
454             # Common
455             - xz-utils
456             - libexpat1-dev
457             - libx11-xcb-dev
458             - libelf-dev
459             - libunwind8-dev
460             - python3-pip
461             - python3-setuptools
462     - env:
463         - LABEL="make Gallium ST Clover LLVM-6.0"
464         - BUILD=make
465         - MAKEFLAGS="-j4"
466         - MAKE_CHECK_COMMAND="true"
467         - LLVM_VERSION=6.0
468         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
469         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
470         - DRI_DRIVERS=""
471         - 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"
472         - GALLIUM_DRIVERS="r600"
473         - VULKAN_DRIVERS=""
474         - LIBUNWIND_FLAGS="--enable-libunwind"
475       addons:
476         apt:
477           packages:
478             - libclc-dev
479             - llvm-6.0-dev
480             - clang-6.0
481             - libclang-6.0-dev
482             # Common
483             - xz-utils
484             - libexpat1-dev
485             - libx11-xcb-dev
486             - libelf-dev
487             - libunwind8-dev
488             - python3-pip
489             - python3-setuptools
490     - env:
491         - LABEL="make Gallium ST Clover LLVM-7"
492         - BUILD=make
493         - MAKEFLAGS="-j4"
494         - MAKE_CHECK_COMMAND="true"
495         - LLVM_VERSION=7
496         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
497         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
498         - DRI_DRIVERS=""
499         - 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"
500         - GALLIUM_DRIVERS="r600,radeonsi"
501         - VULKAN_DRIVERS=""
502         - LIBUNWIND_FLAGS="--enable-libunwind"
503       addons:
504         apt:
505           sources:
506             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
507               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
508           packages:
509             - libclc-dev
510             # From sources above
511             - llvm-7-dev
512             - clang-7
513             - libclang-7-dev
514             # Common
515             - xz-utils
516             - libexpat1-dev
517             - libx11-xcb-dev
518             - libelf-dev
519             - libunwind8-dev
520     - env:
521         - LABEL="make Gallium ST Other"
522         - BUILD=make
523         - MAKEFLAGS="-j4"
524         - MAKE_CHECK_COMMAND="true"
525         - LLVM_VERSION=3.5
526         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
527         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl"
528         - DRI_DRIVERS=""
529         - GALLIUM_ST="--enable-dri --disable-opencl --enable-xa --enable-nine --enable-xvmc --enable-vdpau --enable-va --enable-omx-bellagio --enable-gallium-osmesa"
530         # We need swrast for osmesa and nine.
531         # i915 most likely doesn't work with most ST.
532         # Regardless - we're doing a quick build test here.
533         - GALLIUM_DRIVERS="i915,swrast"
534         - VULKAN_DRIVERS=""
535         - LIBUNWIND_FLAGS="--enable-libunwind"
536       addons:
537         apt:
538           packages:
539             # We actually want to test against llvm-3.3, yet 3.5 is available
540             - llvm-3.5-dev
541             # Nine requires gcc 4.6... which is the one we have right ?
542             - libxvmc-dev
543             # Build locally, for now.
544             #- libvdpau-dev
545             #- libva-dev
546             - libomxil-bellagio-dev
547             # LLVM packaging is broken and misses these dependencies
548             - libedit-dev
549             # Common
550             - xz-utils
551             - libexpat1-dev
552             - libx11-xcb-dev
553             - libelf-dev
554             - libunwind8-dev
555             - python3-pip
556             - python3-setuptools
557     - env:
558         - LABEL="make Vulkan"
559         - BUILD=make
560         - MAKEFLAGS="-j4"
561         - MAKE_CHECK_COMMAND="make -C src/gtest check && make -C src/intel check"
562         - LLVM_VERSION=7
563         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
564         - DRI_LOADERS="--disable-glx --disable-gbm --disable-egl --with-platforms=x11,wayland"
565         - DRI_DRIVERS=""
566         - GALLIUM_ST="--enable-dri --enable-dri3 --disable-opencl --disable-xa --disable-nine --disable-xvmc --disable-vdpau --disable-va --disable-omx-bellagio --disable-gallium-osmesa"
567         - GALLIUM_DRIVERS=""
568         - VULKAN_DRIVERS="intel,radeon"
569         - LIBUNWIND_FLAGS="--disable-libunwind"
570       addons:
571         apt:
572           sources:
573             - sourceline: 'deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial-7 main'
574               key_url: https://apt.llvm.org/llvm-snapshot.gpg.key
575           packages:
576             # From sources above
577             - llvm-7-dev
578             # Common
579             - xz-utils
580             - libexpat1-dev
581             - libx11-xcb-dev
582             - libelf-dev
583             - python3-pip
584             - python3-setuptools
585     - env:
586         - LABEL="scons"
587         - BUILD=scons
588         - SCONSFLAGS="-j4"
589         # Explicitly disable.
590         - SCONS_TARGET="llvm=0"
591         # Keep it symmetrical to the make build.
592         - SCONS_CHECK_COMMAND="scons llvm=0 check"
593       addons:
594         apt:
595           packages:
596             # Common
597             - xz-utils
598             - x11proto-xf86vidmode-dev
599             - libexpat1-dev
600             - libx11-xcb-dev
601             - libelf-dev
602     - env:
603         - LABEL="scons LLVM"
604         - BUILD=scons
605         - SCONSFLAGS="-j4"
606         - SCONS_TARGET="llvm=1"
607         # Keep it symmetrical to the make build.
608         - SCONS_CHECK_COMMAND="scons llvm=1 check"
609         - LLVM_VERSION=3.5
610         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
611       addons:
612         apt:
613           packages:
614             # LLVM packaging is broken and misses these dependencies
615             - libedit-dev
616             # We actually want to test against llvm-3.3, yet 3.5 is available
617             - llvm-3.5-dev
618             # Common
619             - xz-utils
620             - x11proto-xf86vidmode-dev
621             - libexpat1-dev
622             - libx11-xcb-dev
623             - libelf-dev
624     - env:
625         - LABEL="scons SWR"
626         - BUILD=scons
627         - SCONSFLAGS="-j4"
628         - SCONS_TARGET="swr=1"
629         - LLVM_VERSION=6.0
630         - LLVM_CONFIG="llvm-config-${LLVM_VERSION}"
631         # Keep it symmetrical to the make build. There's no actual SWR, yet.
632         - SCONS_CHECK_COMMAND="true"
633       addons:
634         apt:
635           packages:
636             - llvm-6.0-dev
637             # Common
638             - xz-utils
639             - x11proto-xf86vidmode-dev
640             - libexpat1-dev
641             - libx11-xcb-dev
642             - libelf-dev
643     - env:
644         - LABEL="macOS make"
645         - BUILD=make
646         - MAKEFLAGS="-j4"
647         - MAKE_CHECK_COMMAND="make check"
648         - DRI_LOADERS="--with-platforms=x11 --disable-egl"
649       os: osx
650     - env:
651         - LABEL="macOS meson"
652         - BUILD=meson
653         - UNWIND="false"
654         - DRI_LOADERS="-Dglx=dri -Dgbm=false -Degl=false -Dplatforms=x11 -Dosmesa=none"
655         - GALLIUM_ST="-Ddri3=true -Dgallium-vdpau=false -Dgallium-xvmc=false -Dgallium-omx=disabled -Dgallium-va=false -Dgallium-xa=false -Dgallium-nine=false -Dgallium-opencl=disabled"
656       os: osx
657
658 before_install:
659   - |
660     if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
661       HOMEBREW_NO_AUTO_UPDATE=1 brew install python3 ninja expat gettext
662       # Set PATH for homebrew pip3 installs
663       PATH="$HOME/Library/Python/3.6/bin:${PATH}"
664       # Set PKG_CONFIG_PATH for keg-only expat
665       PKG_CONFIG_PATH="/usr/local/opt/expat/lib/pkgconfig:${PKG_CONFIG_PATH}"
666       # Set PATH for keg-only gettext
667       PATH="/usr/local/opt/gettext/bin:${PATH}"
668
669       # Install xquartz for prereqs ...
670       XQUARTZ_VERSION="2.7.11"
671       wget -nv https://dl.bintray.com/xquartz/downloads/XQuartz-${XQUARTZ_VERSION}.dmg
672       hdiutil attach XQuartz-${XQUARTZ_VERSION}.dmg
673       sudo installer -pkg /Volumes/XQuartz-${XQUARTZ_VERSION}/XQuartz.pkg -target /
674       hdiutil detach /Volumes/XQuartz-${XQUARTZ_VERSION}
675       # ... and set paths
676       PATH="/opt/X11/bin:${PATH}"
677       PKG_CONFIG_PATH="/opt/X11/share/pkgconfig:/opt/X11/lib/pkgconfig:${PKG_CONFIG_PATH}"
678       ACLOCAL="aclocal -I /opt/X11/share/aclocal -I /usr/local/share/aclocal"
679     fi
680
681 install:
682   # Install a more modern meson from pip, since the version in the
683   # ubuntu repos is often quite old.
684   - if test "x$BUILD" = xmeson; then
685       pip3 install --user meson;
686       pip3 install --user mako;
687     fi
688
689   # Install autotools build dependencies
690   - if test "x$BUILD" = xmake; then
691       pip2 install --user mako;
692     fi
693
694   # Install a more modern scons from pip.
695   - if test "x$BUILD" = xscons; then
696       pip2 install --user "scons>=2.4";
697       pip2 install --user mako;
698     fi
699
700   # Install dependencies where we require specific versions (or where
701   # disallowed by Travis CI's package whitelisting).
702
703   - |
704     if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
705       wget $XORG_RELEASES/util/$XORGMACROS_VERSION.tar.bz2
706       tar -jxvf $XORGMACROS_VERSION.tar.bz2
707       (cd $XORGMACROS_VERSION && ./configure --prefix=$HOME/prefix && make install)
708
709       wget $XORG_RELEASES/proto/$GLPROTO_VERSION.tar.bz2
710       tar -jxvf $GLPROTO_VERSION.tar.bz2
711       (cd $GLPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
712
713       wget $XORG_RELEASES/proto/$DRI2PROTO_VERSION.tar.bz2
714       tar -jxvf $DRI2PROTO_VERSION.tar.bz2
715       (cd $DRI2PROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
716
717       wget $XCB_RELEASES/$XCBPROTO_VERSION.tar.bz2
718       tar -jxvf $XCBPROTO_VERSION.tar.bz2
719       (cd $XCBPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
720
721       wget $XCB_RELEASES/$LIBXCB_VERSION.tar.bz2
722       tar -jxvf $LIBXCB_VERSION.tar.bz2
723       (cd $LIBXCB_VERSION && ./configure --prefix=$HOME/prefix && make install)
724
725       wget $XORG_RELEASES/lib/$LIBPCIACCESS_VERSION.tar.bz2
726       tar -jxvf $LIBPCIACCESS_VERSION.tar.bz2
727       (cd $LIBPCIACCESS_VERSION && ./configure --prefix=$HOME/prefix && make install)
728
729       wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
730       tar -jxvf $LIBDRM_VERSION.tar.bz2
731       (cd $LIBDRM_VERSION && ./configure --prefix=$HOME/prefix --enable-vc4 --enable-freedreno --enable-etnaviv-experimental-api && make install)
732
733       wget $XORG_RELEASES/proto/$RANDRPROTO_VERSION.tar.bz2
734       tar -jxvf $RANDRPROTO_VERSION.tar.bz2
735       (cd $RANDRPROTO_VERSION && ./configure --prefix=$HOME/prefix && make install)
736
737       wget $XORG_RELEASES/lib/$LIBXRANDR_VERSION.tar.bz2
738       tar -jxvf $LIBXRANDR_VERSION.tar.bz2
739       (cd $LIBXRANDR_VERSION && ./configure --prefix=$HOME/prefix && make install)
740
741       wget $XORG_RELEASES/lib/$LIBXSHMFENCE_VERSION.tar.bz2
742       tar -jxvf $LIBXSHMFENCE_VERSION.tar.bz2
743       (cd $LIBXSHMFENCE_VERSION && ./configure --prefix=$HOME/prefix && make install)
744
745       wget https://people.freedesktop.org/~aplattner/vdpau/$LIBVDPAU_VERSION.tar.bz2
746       tar -jxvf $LIBVDPAU_VERSION.tar.bz2
747       (cd $LIBVDPAU_VERSION && ./configure --prefix=$HOME/prefix && make install)
748
749       wget https://www.freedesktop.org/software/vaapi/releases/libva/$LIBVA_VERSION.tar.bz2
750       tar -jxvf $LIBVA_VERSION.tar.bz2
751       (cd $LIBVA_VERSION && ./configure --prefix=$HOME/prefix --disable-wayland --disable-dummy-driver && make install)
752
753       wget $WAYLAND_RELEASES/$LIBWAYLAND_VERSION.tar.xz
754       tar -axvf $LIBWAYLAND_VERSION.tar.xz
755       (cd $LIBWAYLAND_VERSION && ./configure --prefix=$HOME/prefix --enable-libraries --without-host-scanner --disable-documentation --disable-dtd-validation && make install)
756
757       wget $WAYLAND_RELEASES/$WAYLAND_PROTOCOLS_VERSION.tar.xz
758       tar -axvf $WAYLAND_PROTOCOLS_VERSION.tar.xz
759       (cd $WAYLAND_PROTOCOLS_VERSION && ./configure --prefix=$HOME/prefix && make install)
760
761       # Meson requires ninja >= 1.6, but xenial has 1.3.x
762       wget https://github.com/ninja-build/ninja/releases/download/v1.6.0/ninja-linux.zip
763       unzip ninja-linux.zip
764       mv ninja $HOME/prefix/bin/
765
766       # Generate this header since one is missing on the Travis instance
767       mkdir -p linux
768       printf "%s\n" \
769            "#ifndef _LINUX_MEMFD_H" \
770            "#define _LINUX_MEMFD_H" \
771            "" \
772            "#define MFD_CLOEXEC             0x0001U" \
773            "#define MFD_ALLOW_SEALING       0x0002U" \
774            "" \
775            "#endif /* _LINUX_MEMFD_H */" > linux/memfd.h
776
777       # Generate this header, including the missing SYS_memfd_create
778       # macro, which is not provided by the header in the Travis
779       # instance
780       mkdir -p sys
781       printf "%s\n" \
782            "#ifndef _SYSCALL_H" \
783            "#define _SYSCALL_H      1" \
784            "" \
785            "#include <asm/unistd.h>" \
786            "" \
787            "#ifndef _LIBC" \
788            "# include <bits/syscall.h>" \
789            "#endif" \
790            "" \
791            "#ifndef __NR_memfd_create" \
792            "# define __NR_memfd_create 319 /* Taken from <asm/unistd_64.h> */" \
793            "#endif" \
794            "" \
795            "#ifndef SYS_memfd_create" \
796            "# define SYS_memfd_create __NR_memfd_create" \
797            "#endif" \
798            "" \
799            "#endif" > sys/syscall.h
800     fi
801
802 script:
803   - if test "x$BUILD" = xmake; then
804       export CFLAGS="$CFLAGS -isystem`pwd`";
805
806       mkdir build &&
807       cd build &&
808       ../autogen.sh --enable-debug
809         $LIBUNWIND_FLAGS
810         $DRI_LOADERS
811         --with-dri-drivers=$DRI_DRIVERS
812         $GALLIUM_ST
813         --with-gallium-drivers=$GALLIUM_DRIVERS
814         --with-vulkan-drivers=$VULKAN_DRIVERS
815         --disable-llvm-shared-libs
816         &&
817       make && eval $MAKE_CHECK_COMMAND;
818     fi
819
820   - if test "x$BUILD" = xscons; then
821       scons $SCONS_TARGET && eval $SCONS_CHECK_COMMAND;
822     fi
823
824   - |
825     if test "x$BUILD" = xmeson; then
826       # We need to control the version of llvm-config we're using, so we'll
827       # generate a native file to do so. This requires meson >=0.49
828       #
829       echo -e "[binaries]\nllvm-config = '`which $LLVM_CONFIG`'" > native.file
830
831       $LLVM_CONFIG --version
832
833       export CFLAGS="$CFLAGS -isystem`pwd`"
834       meson _build \
835                    --native-file=native.file \
836                    -Dbuild-tests=true \
837                    -Dlibunwind=${UNWIND} \
838                    ${DRI_LOADERS} \
839                    -Ddri-drivers=${DRI_DRIVERS:-[]} \
840                    ${GALLIUM_ST} \
841                    -Dgallium-drivers=${GALLIUM_DRIVERS:-[]} \
842                    -Dvulkan-drivers=${VULKAN_DRIVERS:-[]}
843       meson configure _build
844       ninja -C _build
845       ninja -C _build test
846     fi