gitlab-ci: Move up meson-arm64 job definition
[mesa.git] / .gitlab-ci / debian-install.sh
index 2acdaf438ee06312f12dab2eec459a6a63d21481..8f843b96a8fb96b6d361f6a4313b02aaa7590bdc 100644 (file)
@@ -24,11 +24,9 @@ echo "deb [trusted=yes] https://apt.llvm.org/stretch/ llvm-toolchain-stretch-8 m
 
 sed -i -e 's/http:\/\/deb/https:\/\/deb/g' /etc/apt/sources.list
 echo 'deb https://deb.debian.org/debian stretch-backports main' >/etc/apt/sources.list.d/backports.list
-echo 'deb https://deb.debian.org/debian jessie main' >/etc/apt/sources.list.d/jessie.list
 
 apt-get update
 apt-get install -y -t stretch-backports \
-      llvm-3.4-dev \
       llvm-3.9-dev \
       libclang-3.9-dev \
       llvm-4.0-dev \
@@ -49,6 +47,7 @@ echo "deb https://deb.debian.org/debian/ buster main" >/etc/apt/sources.list.d/b
 echo "deb https://deb.debian.org/debian/ buster-updates main" >/etc/apt/sources.list.d/buster-updates.list
 apt-get update
 apt-get install -y \
+      git \
       bzip2 \
       zlib1g-dev \
       pkg-config \
@@ -70,28 +69,28 @@ apt-get install -y \
       libunwind-dev \
       libglvnd-dev \
       libgtk-3-dev \
+      libpng-dev \
+      libgbm-dev \
+      libgles2-mesa-dev \
       python-mako \
       python3-mako \
-      meson \
-      scons
-
-# autotools build deps
-apt-get install -y \
-      automake \
-      libtool \
       bison \
       flex \
       gettext \
-      make
+      cmake \
+      meson \
+      scons
 
 # Cross-build Mesa deps
 for arch in $CROSS_ARCHITECTURES; do
     apt-get install -y \
             libdrm-dev:${arch} \
             libexpat1-dev:${arch} \
+            linux-libc-dev:${arch}/stretch-backports \
             libelf-dev:${arch}
 done
 apt-get install -y \
+        g++/stretch \
         dpkg-dev \
         gcc-aarch64-linux-gnu \
         g++-aarch64-linux-gnu \
@@ -213,12 +212,74 @@ apt-get install -y ccache
 # We need xmllint to validate the XML files in Mesa
 apt-get install -y libxml2-utils
 
-# Remove unused packages
+
+# Generate cross build files for Meson
+for arch in $CROSS_ARCHITECTURES; do
+  cross_file="/cross_file-$arch.txt"
+  /usr/share/meson/debcrossgen --arch "$arch" -o "$cross_file"
+  # Work around a bug in debcrossgen that should be fixed in the next release
+  if [ "$arch" = "i386" ]; then
+    sed -i "s|cpu_family = 'i686'|cpu_family = 'x86'|g" "$cross_file"
+  fi
+done
+
+
+############### Build dEQP
+git config --global user.email "mesa@example.com"
+git config --global user.name "Mesa CI"
+# XXX: Use --depth 1 once we can drop the cherry-picks.
+git clone \
+    https://github.com/KhronosGroup/VK-GL-CTS.git \
+    -b opengl-es-cts-3.2.5.1 \
+    /VK-GL-CTS
+cd /VK-GL-CTS
+# Fix surfaceless build
+git cherry-pick -x 22f41e5e321c6dcd8569c4dad91bce89f06b3670
+git cherry-pick -x 1daa8dff73161ea60ead965bd6c9f2a0a2165648
+
+# surfaceless links against libkms and such despite not using it.
+sed -i '/gbm/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libkms/d' targets/surfaceless/surfaceless.cmake
+sed -i '/libgbm/d' targets/surfaceless/surfaceless.cmake
+
+python3 external/fetch_sources.py
+
+mkdir -p /deqp
+cd /deqp
+cmake -G Ninja \
+      -DDEQP_TARGET=surfaceless               \
+      -DCMAKE_BUILD_TYPE=Release              \
+      /VK-GL-CTS
+ninja
+
+# Copy out the mustpass lists we want from a bunch of other junk.
+mkdir /deqp/mustpass
+for gles in gles2 gles3 gles31; do
+    cp \
+        /deqp/external/openglcts/modules/gl_cts/data/mustpass/gles/aosp_mustpass/3.2.5.x/$gles-master.txt \
+        /deqp/mustpass/$gles-master.txt
+done
+
+# Remove the rest of the build products that we don't need.
+rm -rf /deqp/external
+rm -rf /deqp/modules/internal
+rm -rf /deqp/executor
+rm -rf /deqp/execserver
+rm -rf /deqp/modules/egl
+rm -rf /deqp/framework
+du -sh *
+rm -rf /VK-GL-CTS
+
+############### Uninstall the build software
+
 apt-get purge -y \
-      automake \
       git \
-      libtool \
       curl \
       unzip \
-      gnupg
+      gnupg \
+      cmake \
+      git \
+      libgles2-mesa-dev \
+      libgbm-dev
+
 apt-get autoremove -y --purge