
To support Android drivers, we're going to want to be tracking that Mesa's build succeeds on a real android toolchain. This still uses the android stubs since these libs aren't in the NDK. Note that I had to drop the Intel and AMD drivers currently: we don't have LLVM cross-compiled for Android in this container, and I'm honestly hoping ACO saves us from that. Intel has dependencies on libexpat, which AOSP really doesn't want to bring in, and it looks to me like those dependencies could be optional. Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6700>
61 lines
1.9 KiB
Bash
61 lines
1.9 KiB
Bash
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
EPHEMERAL="\
|
|
rdfind \
|
|
unzip \
|
|
"
|
|
|
|
apt-get install -y --no-remove $EPHEMERAL
|
|
|
|
# Fetch the NDK and extract just the toolchain we want.
|
|
ndk=android-ndk-r21d
|
|
wget -O $ndk.zip https://dl.google.com/android/repository/$ndk-linux-x86_64.zip
|
|
unzip -d / $ndk.zip "$ndk/toolchains/llvm/*"
|
|
rm $ndk.zip
|
|
# Since it was packed as a zip file, symlinks/hardlinks got turned into
|
|
# duplicate files. Turn them into hardlinks to save on container space.
|
|
rdfind -makehardlinks true -makeresultsfile false /android-ndk-r21d/
|
|
# Drop some large tools we won't use in this build.
|
|
find /android-ndk-r21d/ -type f | egrep -i "clang-check|clang-tidy|lldb" | xargs rm -f
|
|
|
|
sh .gitlab-ci/create-android-ndk-pc.sh /$ndk zlib.pc "" "-lz" "1.2.3"
|
|
|
|
sh .gitlab-ci/create-android-cross-file.sh /$ndk x86_64-linux-android x86_64 x86_64
|
|
sh .gitlab-ci/create-android-cross-file.sh /$ndk i686-linux-android x86 x86
|
|
sh .gitlab-ci/create-android-cross-file.sh /$ndk aarch64-linux-android arm armv8
|
|
sh .gitlab-ci/create-android-cross-file.sh /$ndk arm-linux-androideabi arm armv7hl armv7a-linux-androideabi
|
|
|
|
# Not using build-libdrm.sh because we don't want its cleanup after building
|
|
# each arch. Fetch and extract now.
|
|
export LIBDRM_VERSION=libdrm-2.4.102
|
|
wget https://dri.freedesktop.org/libdrm/$LIBDRM_VERSION.tar.xz
|
|
tar -xf $LIBDRM_VERSION.tar.xz && rm $LIBDRM_VERSION.tar.xz
|
|
|
|
for arch in \
|
|
x86_64-linux-android \
|
|
i686-linux-android \
|
|
aarch64-linux-android \
|
|
arm-linux-androideabi ; do
|
|
|
|
cd $LIBDRM_VERSION
|
|
rm -rf build-$arch
|
|
meson build-$arch \
|
|
--cross-file=/cross_file-$arch.txt \
|
|
--libdir=lib/$arch \
|
|
-Dlibkms=false \
|
|
-Dnouveau=false \
|
|
-Dvc4=false \
|
|
-Detnaviv=false \
|
|
-Dfreedreno=false \
|
|
-Dintel=false \
|
|
-Dcairo-tests=false
|
|
ninja -C build-$arch install
|
|
cd ..
|
|
done
|
|
|
|
rm -rf $LIBDRM_VERSION
|
|
|
|
apt-get purge -y $EPHEMERAL
|