intel/eu/gen12: Implement datatype binary encoding.
[mesa.git] / .gitlab-ci / debian-test-install.sh
1 #!/bin/bash
2
3 set -e
4 set -o xtrace
5
6 ############### Install packages for building
7 apt-get update
8 apt-get -y install ca-certificates
9 apt-get -y install --no-install-recommends \
10 g++ \
11 git \
12 pkg-config \
13 python \
14 python3-pip \
15 python3-setuptools \
16 bison \
17 flex \
18 gettext \
19 cmake \
20 ninja-build \
21 bc \
22 bzip2 \
23 libssl-dev \
24 curl \
25 unzip \
26 wget \
27 procps \
28 libexpat1 \
29 libelf1 \
30 zlib1g-dev \
31 libpng-dev \
32 libgbm-dev \
33 libgles2-mesa-dev
34
35 export LIBDRM_VERSION=libdrm-2.4.99
36
37 pip3 install meson
38
39 ############### Build libdrm
40
41 wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.bz2
42 tar -xvf $LIBDRM_VERSION.tar.bz2 && rm $LIBDRM_VERSION.tar.bz2
43 cd $LIBDRM_VERSION; meson build/ -Detnaviv=true; ninja -C build/ install; cd ..
44 rm -rf $LIBDRM_VERSION
45
46 ############### Build dEQP
47
48 git config --global user.email "mesa@example.com"
49 git config --global user.name "Mesa CI"
50 # XXX: Use --depth 1 once we can drop the cherry-picks.
51 git clone \
52 https://github.com/KhronosGroup/VK-GL-CTS.git \
53 -b opengl-es-cts-3.2.5.1 \
54 /VK-GL-CTS
55 cd /VK-GL-CTS
56 # Fix surfaceless build
57 git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
58 git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
59
60 # surfaceless links against libkms and such despite not using it.
61 sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
62 sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
63 sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
64
65 # --insecure is due to SSL cert failures hitting sourceforge for zlib and
66 # libpng (sigh). The archives get their checksums checked anyway, and git
67 # always goes through ssh or https.
68 python3 external/fetch_sources.py --insecure
69
70 mkdir -p /deqp
71 cd /deqp
72 cmake -G Ninja \
73 -DDEQP_TARGET=surfaceless \
74 -DCMAKE_BUILD_TYPE=Release \
75 /VK-GL-CTS
76 ninja
77
78 # Copy out the mustpass lists we want from a bunch of other junk.
79 mkdir /deqp/mustpass
80 for gles in gles2 gles3 gles31; do
81 cp \
82 /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
83 /deqp/mustpass/$gles-master.txt
84 done
85
86 rm -rf /deqp/external
87 rm -rf /deqp/modules/internal
88 rm -rf /deqp/executor
89 rm -rf /deqp/execserver
90 rm -rf /deqp/modules/egl
91 rm -rf /deqp/framework
92 du -sh *
93 rm -rf /VK-GL-CTS
94
95 ############### Uninstall the build software
96
97 apt-get purge -y \
98 cmake \
99 git \
100 gcc \
101 g++ \
102 bison \
103 flex \
104 ninja-build