Path: blob/master/scripts/deps/build-dependencies-linux-cross.sh
7491 views
#!/usr/bin/env bash12# SPDX-FileCopyrightText: 2019-2025 Connor McLaughlin <[email protected]>3# SPDX-License-Identifier: CC-BY-NC-ND-4.04#5# NOTE: In addition to the terms of CC-BY-NC-ND-4.0, you may not use this file to create6# packages or build recipes without explicit permission from the copyright holder.7#89set -e1011if [ "$#" -lt 4 ]; then12echo "Syntax: $0 [-skip-download] [-skip-cleanup] [-only-download] <host directory> <cross architecture> <cross chroot> <output directory>"13exit 114fi1516for arg in "$@"; do17if [ "$arg" == "-skip-download" ]; then18echo "Not downloading sources."19SKIP_DOWNLOAD=true20shift21elif [ "$arg" == "-skip-cleanup" ]; then22echo "Not removing build directory."23SKIP_CLEANUP=true24shift25elif [ "$arg" == "-only-download" ]; then26echo "Only downloading sources."27ONLY_DOWNLOAD=true28shift29fi30done3132SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}"))33NPROCS="$(getconf _NPROCESSORS_ONLN)"34HOSTDIR="$1"35if [ "${HOSTDIR:0:1}" != "/" ]; then36HOSTDIR="$PWD/$HOSTDIR"37fi38CROSSARCH="$2"39SYSROOTDIR="$3"40if [ "${SYSROOTDIR:0:1}" != "/" ]; then41SYSROOTDIR="$PWD/$SYSROOTDIR"42fi43INSTALLDIR="$4"44if [ "${INSTALLDIR:0:1}" != "/" ]; then45INSTALLDIR="$PWD/$INSTALLDIR"46fi47TOOLCHAINFILE="$INSTALLDIR/toolchain.cmake"48CMAKE_COMMON=(49-DCMAKE_BUILD_TYPE=Release50-DCMAKE_TOOLCHAIN_FILE="$TOOLCHAINFILE"51-DCMAKE_PREFIX_PATH="$INSTALLDIR"52-DCMAKE_INSTALL_PREFIX="$INSTALLDIR"53)5455# Determine architecture.56if [ "$CROSSARCH" == "arm64" ]; then57CROSSSYSARCH="aarch64"58CROSSTRIPLET="aarch64-linux-gnu"59CMAKEPROCESSOR="aarch64"60elif [ "$CROSSARCH" == "armhf" ]; then61CROSSSYSARCH="armhf"62CROSSTRIPLET="arm-linux-gnueabihf"63CMAKEPROCESSOR="armv7-a"64else65echo "Unknown cross arch $CROSSARCH"66exit 167fi6869source "$SCRIPTDIR/versions"7071mkdir -p "${INSTALLDIR}"72mkdir -p deps-build73cd deps-build7475if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then76curl -C - -L \77-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \78-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \79-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \80-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \81-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.gz" \82-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \83-O "https://github.com/nih-at/libzip/releases/download/v$LIBZIP/libzip-$LIBZIP.tar.gz" \84-o "zlib-ng-$ZLIBNG.tar.gz" "https://github.com/zlib-ng/zlib-ng/archive/refs/tags/$ZLIBNG.tar.gz" \85-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \86-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \87-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \88-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \89-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \90-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \91-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" \92-o "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE_COMMIT.tar.gz" \93-O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL3/SDL3-$SDL3.tar.gz" \94-o "cpuinfo-$CPUINFO_COMMIT.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO_COMMIT.tar.gz" \95-o "discord-rpc-$DISCORD_RPC_COMMIT.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC_COMMIT.tar.gz" \96-o "plutosvg-$PLUTOSVG_COMMIT.tar.gz" "https://github.com/stenzek/plutosvg/archive/$PLUTOSVG_COMMIT.tar.gz" \97-o "shaderc-$SHADERC_COMMIT.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC_COMMIT.tar.gz" \98-o "soundtouch-$SOUNDTOUCH_COMMIT.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH_COMMIT.tar.gz"99fi100101cat > SHASUMS <<EOF102$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz103$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz104$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz105$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz106$LIBPNG_GZ_HASH libpng-$LIBPNG.tar.gz107$LIBWEBP_GZ_HASH libwebp-$LIBWEBP.tar.gz108$LIBZIP_GZ_HASH libzip-$LIBZIP.tar.gz109$ZLIBNG_GZ_HASH zlib-ng-$ZLIBNG.tar.gz110$ZSTD_GZ_HASH zstd-$ZSTD.tar.gz111$QTBASE_XZ_HASH qtbase-everywhere-src-$QT.tar.xz112$QTIMAGEFORMATS_XZ_HASH qtimageformats-everywhere-src-$QT.tar.xz113$QTSVG_XZ_HASH qtsvg-everywhere-src-$QT.tar.xz114$QTTOOLS_XZ_HASH qttools-everywhere-src-$QT.tar.xz115$QTTRANSLATIONS_XZ_HASH qttranslations-everywhere-src-$QT.tar.xz116$QTWAYLAND_XZ_HASH qtwayland-everywhere-src-$QT.tar.xz117$LIBBACKTRACE_GZ_HASH libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz118$SDL3_GZ_HASH SDL3-$SDL3.tar.gz119$CPUINFO_GZ_HASH cpuinfo-$CPUINFO_COMMIT.tar.gz120$DISCORD_RPC_GZ_HASH discord-rpc-$DISCORD_RPC_COMMIT.tar.gz121$PLUTOSVG_GZ_HASH plutosvg-$PLUTOSVG_COMMIT.tar.gz122$SHADERC_GZ_HASH shaderc-$SHADERC_COMMIT.tar.gz123$SOUNDTOUCH_GZ_HASH soundtouch-$SOUNDTOUCH_COMMIT.tar.gz124EOF125126shasum -a 256 --check SHASUMS127128# Have to clone with git, because it does version detection.129if [[ "$SKIP_DOWNLOAD" != true && ! -d "SPIRV-Cross" ]]; then130git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS_TAG --depth 1131if [ "$(git --git-dir=SPIRV-Cross/.git rev-parse HEAD)" != "$SPIRV_CROSS_SHA" ]; then132echo "SPIRV-Cross version mismatch, expected $SPIRV_CROSS_SHA, got $(git rev-parse HEAD)"133exit 1134fi135fi136137# Only downloading sources?138if [ "$ONLY_DOWNLOAD" == true ]; then139exit 0140fi141142# Stop pkg-config picking up host files.143export PKG_CONFIG_PATH=${SYSROOTDIR}/usr/lib/${CROSSTRIPLET}/pkgconfig:${SYSROOTDIR}/usr/lib/pkgconfig:${SYSROOTDIR}/usr/share/pkgconfig144export PKG_CONFIG_SYSROOT_DIR=${SYSROOTDIR}145146# Generate cmake toolchain file.147cat > "$TOOLCHAINFILE" << EOF148set(CMAKE_CROSSCOMPILING TRUE)149set(CMAKE_SYSTEM_NAME Linux)150set(CMAKE_SYSTEM_PROCESSOR ${CMAKEPROCESSOR})151152set(CMAKE_C_COMPILER "/usr/bin/${CROSSTRIPLET}-gcc")153set(CMAKE_C_COMPILER_TARGET "${CROSSTRIPLET}")154set(CMAKE_C_COMPILER_AR "/usr/bin/${CROSSTRIPLET}-ar")155set(CMAKE_C_COMPILER_RANLIB "/usr/bin/${CROSSTRIPLET}-ranlib")156157set(CMAKE_CXX_COMPILER "/usr/bin/${CROSSTRIPLET}-g++")158set(CMAKE_CXX_COMPILER_TARGET "${CROSSTRIPLET}")159set(CMAKE_CXX_COMPILER_AR "/usr/bin/${CROSSTRIPLET}-ar")160set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/${CROSSTRIPLET}-ranlib")161162set(CMAKE_FIND_ROOT_PATH "${INSTALLDIR};${SYSROOTDIR}")163set(CMAKE_SYSROOT "${SYSROOTDIR}")164165set(CMAKE_PKG_CONFIG_PC_PATH "${PKG_CONFIG_PATH}")166set(CMAKE_PKG_CONFIG_SYSROOT_DIR "${PKG_CONFIG_SYSROOT_DIR}")167168set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)169set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)170set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)171set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)172EOF173174# Build zlib first because of the things that depend on it.175# Disabled because it currently causes crashes on armhf.176#echo "Building zlib-ng..."177#rm -fr "zlib-ng-$ZLIBNG"178#tar xf "zlib-ng-$ZLIBNG.tar.gz"179#cd "zlib-ng-$ZLIBNG"180#cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DZLIB_COMPAT=ON -DBUILD_TESTING=OFF -DWITH_BENCHMARK_APPS=OFF -DWITH_GTEST=OFF -B build -G Ninja181#cmake --build build --parallel182#ninja -C build install183#cd ..184185# NOTE: Must be a shared library because otherwise aarch64 libgcc symbols are missing when building with clang.186echo "Building libbacktrace..."187rm -fr "libbacktrace-$LIBBACKTRACE_COMMIT"188tar xf "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz"189cd "libbacktrace-$LIBBACKTRACE_COMMIT"190CFLAGS="-fmacro-prefix-map=\"${PWD}\"=. -ffile-prefix-map=\"${PWD}\"=." ./configure --prefix="$INSTALLDIR" --build=x86_64-linux-gnu --host="${CROSSTRIPLET}" --with-pic --enable-shared --disable-static191make192make install193cd ..194rm -fr "libbacktrace-$LIBBACKTRACE_COMMIT"195196echo "Building libpng..."197rm -fr "libpng-$LIBPNG"198tar xf "libpng-$LIBPNG.tar.gz"199cd "libpng-$LIBPNG"200patch -p1 < "$SCRIPTDIR/libpng-1.6.54-apng.patch"201cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -B build -G Ninja202cmake --build build --parallel203ninja -C build install204cd ..205rm -fr "libpng-$LIBPNG"206207echo "Building libjpeg..."208rm -fr "libjpeg-turbo-$LIBJPEGTURBO"209tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz"210cd "libjpeg-turbo-$LIBJPEGTURBO"211cmake "${CMAKE_COMMON[@]}" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -DWITH_TESTS=OFF -DWITH_TOOLS=OFF -B build -G Ninja212cmake --build build --parallel213ninja -C build install214cd ..215rm -fr "libjpeg-turbo-$LIBJPEGTURBO"216217echo "Building Zstandard..."218rm -fr "zstd-$ZSTD"219tar xf "zstd-$ZSTD.tar.gz"220cd "zstd-$ZSTD"221cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_SHARED=ON -DZSTD_BUILD_STATIC=OFF -DZSTD_BUILD_PROGRAMS=OFF -B build -G Ninja build/cmake222cmake --build build --parallel223ninja -C build install224cd ..225rm -fr "zstd-$ZSTD"226227echo "Building Brotli..."228rm -fr "brotli-$BROTLI"229tar xf "brotli-$BROTLI.tar.gz"230cd "brotli-$BROTLI"231cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build -G Ninja232ninja -C build install233cd ..234rm -fr "brotli-$BROTLI"235236echo "Building WebP..."237rm -fr "libwebp-$LIBWEBP"238tar xf "libwebp-$LIBWEBP.tar.gz"239cd "libwebp-$LIBWEBP"240cmake "${CMAKE_COMMON[@]}" -B build -G Ninja \241-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \242-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON243cmake --build build --parallel244ninja -C build install245cd ..246rm -fr "libwebp-$LIBWEBP"247248echo "Building libzip..."249rm -fr "libzip-$LIBZIP"250tar xf "libzip-$LIBZIP.tar.gz"251cd "libzip-$LIBZIP"252cmake "${CMAKE_COMMON[@]}" -B build -G Ninja \253-DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF \254-DENABLE_BZIP2=OFF -DENABLE_LZMA=OFF -DENABLE_ZSTD=ON -DBUILD_SHARED_LIBS=ON -DLIBZIP_DO_INSTALL=ON \255-DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_OSSFUZZ=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF256cmake --build build --parallel257ninja -C build install258cd ..259rm -fr "libzip-$LIBZIP"260261echo "Building FreeType..."262rm -fr "freetype-$FREETYPE"263tar xf "freetype-$FREETYPE.tar.gz"264cd "freetype-$FREETYPE"265patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"266patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"267cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=ON -DFT_REQUIRE_PNG=ON -DFT_DISABLE_BZIP2=TRUE -DFT_REQUIRE_BROTLI=TRUE -DFT_DYNAMIC_HARFBUZZ=TRUE -B build -G Ninja268cmake --build build --parallel269ninja -C build install270cd ..271rm -fr "freetype-$FREETYPE"272273echo "Building HarfBuzz..."274rm -fr "harfbuzz-$HARFBUZZ"275tar xf "harfbuzz-$HARFBUZZ.tar.gz"276cd "harfbuzz-$HARFBUZZ"277cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build -G Ninja278cmake --build build --parallel279ninja -C build install280cd ..281rm -fr "harfbuzz-$HARFBUZZ"282283echo "Building SDL..."284rm -fr "SDL3-$SDL3"285tar xf "SDL3-$SDL3.tar.gz"286cd "SDL3-$SDL3"287cmake -B build "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DSDL_SHARED=ON -DSDL_STATIC=OFF -DSDL_TESTS=OFF -G Ninja288cmake --build build --parallel289ninja -C build install290cd ..291rm -fr "SDL3-$SDL3"292293# Couple notes:294# -fontconfig is needed otherwise Qt Widgets render only boxes.295# -qt-doubleconversion avoids a dependency on libdouble-conversion.296# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.297# OpenGL is needed to render window decorations in Wayland, apparently.298# dbus-runtime and linked off to avoid a relocation error (different to host.. probably should change that).299# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.300echo "Building Qt Base..."301rm -fr "qtbase-everywhere-src-$QT"302tar xf "qtbase-everywhere-src-$QT.tar.xz"303cd "qtbase-everywhere-src-$QT"304patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"305mkdir build306cd build307../configure -prefix "$INSTALLDIR" -extprefix "$INSTALLDIR" -qt-host-path "$HOSTDIR" -release -dbus runtime -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAINFILE" -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -DFEATURE_dbus_linked=OFF -DFEATURE_icu=OFF -DFEATURE_sql=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON -DFEATURE_gtk3=OFF -DFEATURE_brotli=OFF308cmake --build . --parallel309ninja install310cd ../../311rm -fr "qtbase-everywhere-src-$QT"312313echo "Building Qt SVG..."314rm -fr "qtsvg-everywhere-src-$QT"315tar xf "qtsvg-everywhere-src-$QT.tar.xz"316cd "qtsvg-everywhere-src-$QT"317mkdir build318cd build319"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF320cmake --build . --parallel321ninja install322cd ../../323rm -fr "qtsvg-everywhere-src-$QT"324325echo "Building Qt Image Formats..."326rm -fr "qtimageformats-everywhere-src-$QT"327tar xf "qtimageformats-everywhere-src-$QT.tar.xz"328cd "qtimageformats-everywhere-src-$QT"329mkdir build330cd build331"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_system_webp=ON332cmake --build . --parallel333ninja install334cd ../../335rm -fr "qtimageformats-everywhere-src-$QT"336337echo "Building Qt Wayland..."338rm -fr "qtwayland-everywhere-src-$QT"339tar xf "qtwayland-everywhere-src-$QT.tar.xz"340cd "qtwayland-everywhere-src-$QT"341mkdir build342cd build343"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF344cmake --build . --parallel345ninja install346cd ../../347rm -fr "qtwayland-everywhere-src-$QT"348349echo "Installing Qt Tools..."350rm -fr "qttools-everywhere-src-$QT"351tar xf "qttools-everywhere-src-$QT.tar.xz"352cd "qttools-everywhere-src-$QT"353patch -p1 < "$SCRIPTDIR/qttools-linguist-without-quick.patch"354patch -p1 < "$SCRIPTDIR/qttools-disable-clang.patch"355mkdir build356cd build357"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=ON -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF358cmake --build . --parallel359ninja install360cd ../../361rm -fr "qttools-everywhere-src-$QT"362363echo "Installing Qt Translations..."364rm -fr "qttranslations-everywhere-src-$QT"365tar xf "qttranslations-everywhere-src-$QT.tar.xz"366cd "qttranslations-everywhere-src-$QT"367mkdir build368cd build369"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF370cmake --build . --parallel371ninja install372cd ../../373rm -fr "qttranslations-everywhere-src-$QT"374375echo "Building shaderc..."376rm -fr "shaderc-$SHADERC_COMMIT"377tar xf "shaderc-$SHADERC_COMMIT.tar.gz"378cd "shaderc-$SHADERC_COMMIT"379cmake "${CMAKE_COMMON[@]}" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_EXECUTABLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja380cmake --build build --parallel381ninja -C build install382cd ..383rm -fr "shaderc-$SHADERC_COMMIT"384385echo "Building SPIRV-Cross..."386cd SPIRV-Cross387rm -fr build388cmake "${CMAKE_COMMON[@]}" -DSPIRV_CROSS_SHARED=ON -DSPIRV_CROSS_STATIC=OFF -DSPIRV_CROSS_CLI=OFF -DSPIRV_CROSS_ENABLE_TESTS=OFF -DSPIRV_CROSS_ENABLE_GLSL=ON -DSPIRV_CROSS_ENABLE_HLSL=OFF -DSPIRV_CROSS_ENABLE_MSL=OFF -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build -G Ninja389cmake --build build --parallel390ninja -C build install391rm -fr build392cd ..393394echo "Building cpuinfo..."395rm -fr "cpuinfo-$CPUINFO_COMMIT"396tar xf "cpuinfo-$CPUINFO_COMMIT.tar.gz"397cd "cpuinfo-$CPUINFO_COMMIT"398cmake "${CMAKE_COMMON[@]}" -DCPUINFO_LIBRARY_TYPE=shared -DCPUINFO_RUNTIME_TYPE=shared -DCPUINFO_LOG_LEVEL=error -DCPUINFO_LOG_TO_STDIO=ON -DCPUINFO_BUILD_TOOLS=OFF -DCPUINFO_BUILD_UNIT_TESTS=OFF -DCPUINFO_BUILD_MOCK_TESTS=OFF -DCPUINFO_BUILD_BENCHMARKS=OFF -DUSE_SYSTEM_LIBS=ON -B build -G Ninja399cmake --build build --parallel400ninja -C build install401cd ..402rm -fr "cpuinfo-$CPUINFO_COMMIT"403404echo "Building discord-rpc..."405rm -fr "discord-rpc-$DISCORD_RPC_COMMIT"406tar xf "discord-rpc-$DISCORD_RPC_COMMIT.tar.gz"407cd "discord-rpc-$DISCORD_RPC_COMMIT"408cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -B build -G Ninja409cmake --build build --parallel410ninja -C build install411cd ..412rm -fr "discord-rpc-$DISCORD_RPC_COMMIT"413414echo "Building plutosvg..."415rm -fr "plutosvg-$PLUTOSVG_COMMIT"416tar xf "plutosvg-$PLUTOSVG_COMMIT.tar.gz"417cd "plutosvg-$PLUTOSVG_COMMIT"418cmake "${CMAKE_COMMON[@]}" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build -G Ninja419cmake --build build --parallel420ninja -C build install421cd ..422rm -fr "plutosvg-$PLUTOSVG_COMMIT"423424echo "Building soundtouch..."425rm -fr "soundtouch-$SOUNDTOUCH_COMMIT"426tar xf "soundtouch-$SOUNDTOUCH_COMMIT.tar.gz"427cd "soundtouch-$SOUNDTOUCH_COMMIT"428cmake "${CMAKE_COMMON[@]}" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -B build -G Ninja429cmake --build build --parallel430ninja -C build install431cd ..432rm -fr "soundtouch-$SOUNDTOUCH_COMMIT"433434if [ "$SKIP_CLEANUP" != true ]; then435echo "Cleaning up..."436cd ..437rm -fr deps-build438fi439440441