1bf215546Sopenharmony_ci#!/bin/bash 2bf215546Sopenharmony_ci 3bf215546Sopenharmony_ciset -e 4bf215546Sopenharmony_ciset -o xtrace 5bf215546Sopenharmony_ci 6bf215546Sopenharmony_ciexport DEBIAN_FRONTEND=noninteractive 7bf215546Sopenharmony_ci 8bf215546Sopenharmony_ci# Ephemeral packages (installed for this script and removed again at the end) 9bf215546Sopenharmony_ciSTABLE_EPHEMERAL=" \ 10bf215546Sopenharmony_ci " 11bf215546Sopenharmony_ci 12bf215546Sopenharmony_cidpkg --add-architecture $arch 13bf215546Sopenharmony_ciapt-get update 14bf215546Sopenharmony_ci 15bf215546Sopenharmony_ciapt-get install -y --no-remove \ 16bf215546Sopenharmony_ci $STABLE_EPHEMERAL \ 17bf215546Sopenharmony_ci crossbuild-essential-$arch \ 18bf215546Sopenharmony_ci libelf-dev:$arch \ 19bf215546Sopenharmony_ci libexpat1-dev:$arch \ 20bf215546Sopenharmony_ci libpciaccess-dev:$arch \ 21bf215546Sopenharmony_ci libstdc++6:$arch \ 22bf215546Sopenharmony_ci libvulkan-dev:$arch \ 23bf215546Sopenharmony_ci libx11-dev:$arch \ 24bf215546Sopenharmony_ci libx11-xcb-dev:$arch \ 25bf215546Sopenharmony_ci libxcb-dri2-0-dev:$arch \ 26bf215546Sopenharmony_ci libxcb-dri3-dev:$arch \ 27bf215546Sopenharmony_ci libxcb-glx0-dev:$arch \ 28bf215546Sopenharmony_ci libxcb-present-dev:$arch \ 29bf215546Sopenharmony_ci libxcb-randr0-dev:$arch \ 30bf215546Sopenharmony_ci libxcb-shm0-dev:$arch \ 31bf215546Sopenharmony_ci libxcb-xfixes0-dev:$arch \ 32bf215546Sopenharmony_ci libxdamage-dev:$arch \ 33bf215546Sopenharmony_ci libxext-dev:$arch \ 34bf215546Sopenharmony_ci libxrandr-dev:$arch \ 35bf215546Sopenharmony_ci libxshmfence-dev:$arch \ 36bf215546Sopenharmony_ci libxxf86vm-dev:$arch \ 37bf215546Sopenharmony_ci wget 38bf215546Sopenharmony_ci 39bf215546Sopenharmony_ciif [[ $arch != "armhf" ]]; then 40bf215546Sopenharmony_ci if [[ $arch == "s390x" ]]; then 41bf215546Sopenharmony_ci LLVM=9 42bf215546Sopenharmony_ci else 43bf215546Sopenharmony_ci LLVM=11 44bf215546Sopenharmony_ci fi 45bf215546Sopenharmony_ci 46bf215546Sopenharmony_ci # llvm-*-tools:$arch conflicts with python3:amd64. Install dependencies only 47bf215546Sopenharmony_ci # with apt-get, then force-install llvm-*-{dev,tools}:$arch with dpkg to get 48bf215546Sopenharmony_ci # around this. 49bf215546Sopenharmony_ci apt-get install -y --no-remove \ 50bf215546Sopenharmony_ci libclang-cpp${LLVM}:$arch \ 51bf215546Sopenharmony_ci libffi-dev:$arch \ 52bf215546Sopenharmony_ci libgcc-s1:$arch \ 53bf215546Sopenharmony_ci libtinfo-dev:$arch \ 54bf215546Sopenharmony_ci libz3-dev:$arch \ 55bf215546Sopenharmony_ci llvm-${LLVM}:$arch \ 56bf215546Sopenharmony_ci zlib1g 57bf215546Sopenharmony_cifi 58bf215546Sopenharmony_ci 59bf215546Sopenharmony_ci. .gitlab-ci/container/create-cross-file.sh $arch 60bf215546Sopenharmony_ci 61bf215546Sopenharmony_ci 62bf215546Sopenharmony_ci. .gitlab-ci/container/container_pre_build.sh 63bf215546Sopenharmony_ci 64bf215546Sopenharmony_ci 65bf215546Sopenharmony_ci# dependencies where we want a specific version 66bf215546Sopenharmony_ciEXTRA_MESON_ARGS="--cross-file=/cross_file-${arch}.txt -D libdir=lib/$(dpkg-architecture -A $arch -qDEB_TARGET_MULTIARCH)" 67bf215546Sopenharmony_ci. .gitlab-ci/container/build-libdrm.sh 68bf215546Sopenharmony_ci 69bf215546Sopenharmony_ciapt-get purge -y \ 70bf215546Sopenharmony_ci $STABLE_EPHEMERAL 71bf215546Sopenharmony_ci 72bf215546Sopenharmony_ci. .gitlab-ci/container/container_post_build.sh 73bf215546Sopenharmony_ci 74bf215546Sopenharmony_ci# This needs to be done after container_post_build.sh, or apt-get breaks in there 75bf215546Sopenharmony_ciif [[ $arch != "armhf" ]]; then 76bf215546Sopenharmony_ci apt-get download llvm-${LLVM}-{dev,tools}:$arch 77bf215546Sopenharmony_ci dpkg -i --force-depends llvm-${LLVM}-*_${arch}.deb 78bf215546Sopenharmony_ci rm llvm-${LLVM}-*_${arch}.deb 79bf215546Sopenharmony_cifi 80