Path: blob/master/scripts/deps/build-dependencies-linux.sh
7468 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 1 ]; then12echo "Syntax: $0 [-skip-download] [-skip-cleanup] [-only-download] <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)"34INSTALLDIR="$1"35if [ "${INSTALLDIR:0:1}" != "/" ]; then36INSTALLDIR="$PWD/$INSTALLDIR"37fi3839source "$SCRIPTDIR/versions"4041mkdir -p deps-build42cd deps-build4344if [[ "$SKIP_DOWNLOAD" != true && ! -f "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" ]]; then45curl -C - -L \46-o "brotli-$BROTLI.tar.gz" "https://github.com/google/brotli/archive/refs/tags/v$BROTLI.tar.gz" \47-o "freetype-$FREETYPE.tar.gz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.gz/download" \48-o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \49-O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \50-O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.gz" \51-O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \52-O "https://github.com/nih-at/libzip/releases/download/v$LIBZIP/libzip-$LIBZIP.tar.gz" \53-o "zlib-ng-$ZLIBNG.tar.gz" "https://github.com/zlib-ng/zlib-ng/archive/refs/tags/$ZLIBNG.tar.gz" \54-O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \55-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \56-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \57-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \58-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \59-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \60-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" \61-o "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz" "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE_COMMIT.tar.gz" \62-O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL3/SDL3-$SDL3.tar.gz" \63-o "cpuinfo-$CPUINFO_COMMIT.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO_COMMIT.tar.gz" \64-o "discord-rpc-$DISCORD_RPC_COMMIT.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC_COMMIT.tar.gz" \65-o "plutosvg-$PLUTOSVG_COMMIT.tar.gz" "https://github.com/stenzek/plutosvg/archive/$PLUTOSVG_COMMIT.tar.gz" \66-o "shaderc-$SHADERC_COMMIT.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC_COMMIT.tar.gz" \67-o "soundtouch-$SOUNDTOUCH_COMMIT.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH_COMMIT.tar.gz"68fi6970cat > SHASUMS <<EOF71$BROTLI_GZ_HASH brotli-$BROTLI.tar.gz72$FREETYPE_GZ_HASH freetype-$FREETYPE.tar.gz73$HARFBUZZ_GZ_HASH harfbuzz-$HARFBUZZ.tar.gz74$LIBJPEGTURBO_GZ_HASH libjpeg-turbo-$LIBJPEGTURBO.tar.gz75$LIBPNG_GZ_HASH libpng-$LIBPNG.tar.gz76$LIBWEBP_GZ_HASH libwebp-$LIBWEBP.tar.gz77$LIBZIP_GZ_HASH libzip-$LIBZIP.tar.gz78$ZLIBNG_GZ_HASH zlib-ng-$ZLIBNG.tar.gz79$ZSTD_GZ_HASH zstd-$ZSTD.tar.gz80$QTBASE_XZ_HASH qtbase-everywhere-src-$QT.tar.xz81$QTIMAGEFORMATS_XZ_HASH qtimageformats-everywhere-src-$QT.tar.xz82$QTSVG_XZ_HASH qtsvg-everywhere-src-$QT.tar.xz83$QTTOOLS_XZ_HASH qttools-everywhere-src-$QT.tar.xz84$QTTRANSLATIONS_XZ_HASH qttranslations-everywhere-src-$QT.tar.xz85$QTWAYLAND_XZ_HASH qtwayland-everywhere-src-$QT.tar.xz86$LIBBACKTRACE_GZ_HASH libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz87$SDL3_GZ_HASH SDL3-$SDL3.tar.gz88$CPUINFO_GZ_HASH cpuinfo-$CPUINFO_COMMIT.tar.gz89$DISCORD_RPC_GZ_HASH discord-rpc-$DISCORD_RPC_COMMIT.tar.gz90$PLUTOSVG_GZ_HASH plutosvg-$PLUTOSVG_COMMIT.tar.gz91$SHADERC_GZ_HASH shaderc-$SHADERC_COMMIT.tar.gz92$SOUNDTOUCH_GZ_HASH soundtouch-$SOUNDTOUCH_COMMIT.tar.gz93EOF9495shasum -a 256 --check SHASUMS9697# Have to clone with git, because it does version detection.98if [[ "$SKIP_DOWNLOAD" != true && ! -d "SPIRV-Cross" ]]; then99git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS_TAG --depth 1100if [ "$(git --git-dir=SPIRV-Cross/.git rev-parse HEAD)" != "$SPIRV_CROSS_SHA" ]; then101echo "SPIRV-Cross version mismatch, expected $SPIRV_CROSS_SHA, got $(git rev-parse HEAD)"102exit 1103fi104fi105106# Only downloading sources?107if [ "$ONLY_DOWNLOAD" == true ]; then108exit 0109fi110111# Prefer local deps for pkg-config search path.112if [[ -z "$PKG_CONFIG_PATH" ]]; then113export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$INSTALLDIR/lib64/pkgconfig"114else115export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$INSTALLDIR/lib64/pkgconfig:${PKG_CONFIG_PATH}"116fi117118# Build zlib first because of the things that depend on it.119echo "Building zlib-ng..."120rm -fr "zlib-ng-$ZLIBNG"121tar xf "zlib-ng-$ZLIBNG.tar.gz"122cd "zlib-ng-$ZLIBNG"123cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DZLIB_COMPAT=ON -DBUILD_TESTING=OFF -DWITH_BENCHMARK_APPS=OFF -DWITH_GTEST=OFF -B build -G Ninja124cmake --build build --parallel125ninja -C build install126cd ..127rm -fr "zlib-ng-$ZLIBNG"128129echo "Building libbacktrace..."130rm -fr "libbacktrace-$LIBBACKTRACE_COMMIT"131tar xf "libbacktrace-$LIBBACKTRACE_COMMIT.tar.gz"132cd "libbacktrace-$LIBBACKTRACE_COMMIT"133CFLAGS="-fmacro-prefix-map=\"${PWD}\"=. -ffile-prefix-map=\"${PWD}\"=." ./configure --prefix="$INSTALLDIR" --with-pic134make135make install136cd ..137rm -fr "libbacktrace-$LIBBACKTRACE_COMMIT"138139echo "Building libpng..."140rm -fr "libpng-$LIBPNG"141tar xf "libpng-$LIBPNG.tar.gz"142cd "libpng-$LIBPNG"143patch -p1 < "$SCRIPTDIR/libpng-1.6.54-apng.patch"144cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -B build -G Ninja145cmake --build build --parallel146ninja -C build install147cd ..148rm -fr "libpng-$LIBPNG"149150echo "Building libjpeg..."151rm -fr "libjpeg-turbo-$LIBJPEGTURBO"152tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz"153cd "libjpeg-turbo-$LIBJPEGTURBO"154cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -DWITH_TESTS=OFF -DWITH_TOOLS=OFF -B build -G Ninja155cmake --build build --parallel156ninja -C build install157cd ..158rm -fr "libjpeg-turbo-$LIBJPEGTURBO"159160echo "Building Zstandard..."161rm -fr "zstd-$ZSTD"162tar xf "zstd-$ZSTD.tar.gz"163cd "zstd-$ZSTD"164cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_SHARED=ON -DZSTD_BUILD_STATIC=OFF -DZSTD_BUILD_PROGRAMS=OFF -B build -G Ninja build/cmake165cmake --build build --parallel166ninja -C build install167cd ..168rm -fr "zstd-$ZSTD"169170echo "Building Brotli..."171rm -fr "brotli-$BROTLI"172tar xf "brotli-$BROTLI.tar.gz"173cd "brotli-$BROTLI"174cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=OFF -DBROTLI_BUILD_TOOLS=OFF -DBROTLI_DISABLE_TESTS=ON -B build -G Ninja175ninja -C build install176cd ..177rm -fr "brotli-$BROTLI"178179echo "Building WebP..."180rm -fr "libwebp-$LIBWEBP"181tar xf "libwebp-$LIBWEBP.tar.gz"182cd "libwebp-$LIBWEBP"183cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -B build -G Ninja \184-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \185-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON186cmake --build build --parallel187ninja -C build install188cd ..189rm -fr "libwebp-$LIBWEBP"190191echo "Building libzip..."192rm -fr "libzip-$LIBZIP"193tar xf "libzip-$LIBZIP.tar.gz"194cd "libzip-$LIBZIP"195cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -B build -G Ninja \196-DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF \197-DENABLE_BZIP2=OFF -DENABLE_LZMA=OFF -DENABLE_ZSTD=ON -DBUILD_SHARED_LIBS=ON -DLIBZIP_DO_INSTALL=ON \198-DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_OSSFUZZ=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF199cmake --build build --parallel200ninja -C build install201cd ..202rm -fr "libzip-$LIBZIP"203204echo "Building FreeType..."205rm -fr "freetype-$FREETYPE"206tar xf "freetype-$FREETYPE.tar.gz"207cd "freetype-$FREETYPE"208patch -p1 < "$SCRIPTDIR/freetype-harfbuzz-soname.patch"209patch -p1 < "$SCRIPTDIR/freetype-static-brotli.patch"210cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -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 Ninja211cmake --build build --parallel212ninja -C build install213cd ..214rm -fr "freetype-$FREETYPE"215216echo "Building HarfBuzz..."217rm -fr "harfbuzz-$HARFBUZZ"218tar xf "harfbuzz-$HARFBUZZ.tar.gz"219cd "harfbuzz-$HARFBUZZ"220cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build -G Ninja221cmake --build build --parallel222ninja -C build install223cd ..224rm -fr "harfbuzz-$HARFBUZZ"225226echo "Building SDL..."227rm -fr "SDL3-$SDL3"228tar xf "SDL3-$SDL3.tar.gz"229cd "SDL3-$SDL3"230cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DSDL_SHARED=ON -DSDL_STATIC=OFF -DSDL_TESTS=OFF -G Ninja231cmake --build build --parallel232ninja -C build install233cd ..234rm -fr "SDL3-$SDL3"235236# Couple notes:237# -fontconfig is needed otherwise Qt Widgets render only boxes.238# -qt-doubleconversion avoids a dependency on libdouble-conversion.239# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.240# OpenGL is needed to render window decorations in Wayland, apparently.241# Brotli is disabled as we static link it, and QtNetwork doesn't link with bbrotlicommon.242echo "Building Qt Base..."243rm -fr "qtbase-everywhere-src-$QT"244tar xf "qtbase-everywhere-src-$QT.tar.xz"245cd "qtbase-everywhere-src-$QT"246patch -p1 < "$SCRIPTDIR/qtbase-disable-pcre2-jit.patch"247patch -p1 < "$SCRIPTDIR/qtbase-fusion-style.patch"248mkdir build249cd build250../configure -prefix "$INSTALLDIR" -release -dbus-linked -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_cups=OFF -DFEATURE_dbus=ON -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=OFF251cmake --build . --parallel252ninja install253cd ../../254rm -fr "qtbase-everywhere-src-$QT"255256echo "Building Qt SVG..."257rm -fr "qtsvg-everywhere-src-$QT"258tar xf "qtsvg-everywhere-src-$QT.tar.xz"259cd "qtsvg-everywhere-src-$QT"260mkdir build261cd build262"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF263cmake --build . --parallel264ninja install265cd ../../266rm -fr "qtsvg-everywhere-src-$QT"267268echo "Building Qt Image Formats..."269rm -fr "qtimageformats-everywhere-src-$QT"270tar xf "qtimageformats-everywhere-src-$QT.tar.xz"271cd "qtimageformats-everywhere-src-$QT"272mkdir build273cd build274"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF -DFEATURE_system_webp=ON275cmake --build . --parallel276ninja install277cd ../../278rm -fr "qtimageformats-everywhere-src-$QT"279280echo "Building Qt Wayland..."281rm -fr "qtwayland-everywhere-src-$QT"282tar xf "qtwayland-everywhere-src-$QT.tar.xz"283cd "qtwayland-everywhere-src-$QT"284mkdir build285cd build286"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF287cmake --build . --parallel288ninja install289cd ../../290rm -fr "qtwayland-everywhere-src-$QT"291292echo "Installing Qt Tools..."293rm -fr "qttools-everywhere-src-$QT"294tar xf "qttools-everywhere-src-$QT.tar.xz"295cd "qttools-everywhere-src-$QT"296patch -p1 < "$SCRIPTDIR/qttools-linguist-without-quick.patch"297patch -p1 < "$SCRIPTDIR/qttools-disable-clang.patch"298mkdir build299cd build300"$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=OFF301cmake --build . --parallel302ninja install303cd ../../304rm -fr "qttools-everywhere-src-$QT"305306echo "Installing Qt Translations..."307rm -fr "qttranslations-everywhere-src-$QT"308tar xf "qttranslations-everywhere-src-$QT.tar.xz"309cd "qttranslations-everywhere-src-$QT"310mkdir build311cd build312"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DQT_GENERATE_SBOM=OFF313cmake --build . --parallel314ninja install315cd ../../316rm -fr "qttranslations-everywhere-src-$QT"317318echo "Building shaderc..."319rm -fr "shaderc-$SHADERC_COMMIT"320tar xf "shaderc-$SHADERC_COMMIT.tar.gz"321cd "shaderc-$SHADERC_COMMIT"322cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_EXECUTABLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja323cmake --build build --parallel324ninja -C build install325cd ..326rm -fr "shaderc-$SHADERC_COMMIT"327328echo "Building SPIRV-Cross..."329cd SPIRV-Cross330rm -fr build331cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -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 Ninja332cmake --build build --parallel333ninja -C build install334rm -fr build335cd ..336337echo "Building cpuinfo..."338rm -fr "cpuinfo-$CPUINFO_COMMIT"339tar xf "cpuinfo-$CPUINFO_COMMIT.tar.gz"340cd "cpuinfo-$CPUINFO_COMMIT"341cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -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 Ninja342cmake --build build --parallel343ninja -C build install344cd ..345rm -fr "cpuinfo-$CPUINFO_COMMIT"346347echo "Building discord-rpc..."348rm -fr "discord-rpc-$DISCORD_RPC_COMMIT"349tar xf "discord-rpc-$DISCORD_RPC_COMMIT.tar.gz"350cd "discord-rpc-$DISCORD_RPC_COMMIT"351cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -B build -G Ninja352cmake --build build --parallel353ninja -C build install354cd ..355rm -fr "discord-rpc-$DISCORD_RPC_COMMIT"356357echo "Building plutosvg..."358rm -fr "plutosvg-$PLUTOSVG_COMMIT"359tar xf "plutosvg-$PLUTOSVG_COMMIT.tar.gz"360cd "plutosvg-$PLUTOSVG_COMMIT"361cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DPLUTOSVG_ENABLE_FREETYPE=ON -DPLUTOSVG_BUILD_EXAMPLES=OFF -B build -G Ninja362cmake --build build --parallel363ninja -C build install364cd ..365rm -fr "plutosvg-$PLUTOSVG_COMMIT"366367echo "Building soundtouch..."368rm -fr "soundtouch-$SOUNDTOUCH_COMMIT"369tar xf "soundtouch-$SOUNDTOUCH_COMMIT.tar.gz"370cd "soundtouch-$SOUNDTOUCH_COMMIT"371cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -B build -G Ninja372cmake --build build --parallel373ninja -C build install374cd ..375rm -fr "soundtouch-$SOUNDTOUCH_COMMIT"376377if [ "$SKIP_CLEANUP" != true ]; then378echo "Cleaning up..."379cd ..380rm -fr deps-build381fi382383384