| #!/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 |