duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

build-dependencies-linux.sh (16873B)


      1 #!/usr/bin/env bash
      2 
      3 set -e
      4 
      5 if [ "$#" -lt 1 ]; then
      6     echo "Syntax: $0 [-system-freetype] [-system-harfbuzz] [-system-libjpeg] [-system-libpng] [-system-libwebp] [-system-zstd] [-system-qt] [-skip-download] [-skip-cleanup] <output directory>"
      7     exit 1
      8 fi
      9 
     10 for arg in "$@"; do
     11 	if [ "$arg" == "-system-freetype" ]; then
     12 		echo "Skipping building FreeType."
     13 		SKIP_FREETYPE=true
     14 		shift
     15 	elif [ "$arg" == "-system-harfbuzz" ]; then
     16 		echo "Skipping building HarfBuzz."
     17 		SKIP_HARFBUZZ=true
     18 		shift
     19 	elif [ "$arg" == "-system-libjpeg" ]; then
     20 		echo "Skipping building libjpeg."
     21 		SKIP_LIBJPEG=true
     22 		shift
     23 	elif [ "$arg" == "-system-libpng" ]; then
     24 		echo "Skipping building libpng."
     25 		SKIP_LIBPNG=true
     26 		shift
     27 	elif [ "$arg" == "-system-libwebp" ]; then
     28 		echo "Skipping building libwebp."
     29 		SKIP_LIBWEBP=true
     30 		shift
     31 	elif [ "$arg" == "-system-zstd" ]; then
     32 		echo "Skipping building zstd."
     33 		SKIP_ZSTD=true
     34 		shift
     35 	elif [ "$arg" == "-system-qt" ]; then
     36 		echo "Skipping building Qt."
     37 		SKIP_QT=true
     38 		shift
     39 	elif [ "$arg" == "-skip-download" ]; then
     40 		echo "Not downloading sources."
     41 		SKIP_DOWNLOAD=true
     42 		shift
     43 	elif [ "$arg" == "-skip-cleanup" ]; then
     44 		echo "Not removing build directory."
     45 		SKIP_CLEANUP=true
     46 		shift
     47 	fi
     48 done
     49 
     50 SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}"))
     51 NPROCS="$(getconf _NPROCESSORS_ONLN)"
     52 INSTALLDIR="$1"
     53 if [ "${INSTALLDIR:0:1}" != "/" ]; then
     54 	INSTALLDIR="$PWD/$INSTALLDIR"
     55 fi
     56 
     57 FREETYPE=2.13.3
     58 HARFBUZZ=9.0.0
     59 LIBBACKTRACE=ad106d5fdd5d960bd33fae1c48a351af567fd075
     60 LIBJPEGTURBO=3.0.3
     61 LIBPNG=1.6.43
     62 LIBWEBP=1.4.0
     63 SDL2=2.30.6
     64 QT=6.7.2
     65 ZSTD=1.5.6
     66 
     67 CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053
     68 DISCORD_RPC=144f3a3f1209994d8d9e8a87964a989cb9911c1e
     69 LUNASVG=9af1ac7b90658a279b372add52d6f77a4ebb482c
     70 SHADERC=f60bb80e255144e71776e2ad570d89b78ea2ab4f
     71 SOUNDTOUCH=463ade388f3a51da078dc9ed062bf28e4ba29da7
     72 SPIRV_CROSS=vulkan-sdk-1.3.290.0
     73 
     74 mkdir -p deps-build
     75 cd deps-build
     76 
     77 if [ "$SKIP_DOWNLOAD" != true ]; then
     78 	curl -C - -L \
     79 		-O "https://github.com/ianlancetaylor/libbacktrace/archive/$LIBBACKTRACE.zip" \
     80 		-O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL2/SDL2-$SDL2.tar.gz" \
     81 		-o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \
     82 		-o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \
     83 		-o "lunasvg-$LUNASVG.tar.gz" "https://github.com/stenzek/lunasvg/archive/$LUNASVG.tar.gz" \
     84 		-o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" \
     85 		-o "soundtouch-$SOUNDTOUCH.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH.tar.gz"
     86 fi
     87 
     88 cat > SHASUMS <<EOF
     89 fd6f417fe9e3a071cf1424a5152d926a34c4a3c5070745470be6cf12a404ed79  $LIBBACKTRACE.zip
     90 c6ef64ca18a19d13df6eb22df9aff19fb0db65610a74cc81dae33a82235cacd4  SDL2-$SDL2.tar.gz
     91 e1351218d270db49c3dddcba04fb2153b09731ea3fa6830e423f5952f44585be  cpuinfo-$CPUINFO.tar.gz
     92 3eea5ccce6670c126282f1ba4d32c19d486db49a1a5cbfb8d6f48774784d310c  discord-rpc-$DISCORD_RPC.tar.gz
     93 3998b024b0d442614a9ee270e76e018bb37a17b8c6941212171731123cbbcac7  lunasvg-$LUNASVG.tar.gz
     94 4c1780b6c65c27c4dcb109f08ab632241c98b77fe2e22be726c151ff514482bf  shaderc-$SHADERC.tar.gz
     95 fe45c2af99f6102d2704277d392c1c83b55180a70bfd17fb888cc84a54b70573  soundtouch-$SOUNDTOUCH.tar.gz
     96 EOF
     97 
     98 if [ "$SKIP_FREETYPE" != true ]; then
     99 	if [ "$SKIP_DOWNLOAD" != true ]; then
    100 		curl -C - -L -o "freetype-$FREETYPE.tar.xz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.xz/download"
    101 	fi
    102 	cat >> SHASUMS <<EOF
    103 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289  freetype-$FREETYPE.tar.xz
    104 EOF
    105 fi
    106 if [ "$SKIP_HARFBUZZ" != true ]; then
    107 	if [ "$SKIP_DOWNLOAD" != true ]; then
    108 		curl -C - -L -o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz"
    109 	fi
    110 	cat >> SHASUMS <<EOF
    111 b7e481b109d19aefdba31e9f5888aa0cdfbe7608fed9a43494c060ce1f8a34d2  harfbuzz-$HARFBUZZ.tar.gz
    112 EOF
    113 fi
    114 if [ "$SKIP_LIBJPEG" != true ]; then
    115 	if [ "$SKIP_DOWNLOAD" != true ]; then
    116 		curl -C - -L -O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz"
    117 	fi
    118 	cat >> SHASUMS <<EOF
    119 343e789069fc7afbcdfe44dbba7dbbf45afa98a15150e079a38e60e44578865d  libjpeg-turbo-$LIBJPEGTURBO.tar.gz
    120 EOF
    121 fi
    122 if [ "$SKIP_LIBPNG" != true ]; then
    123 	if [ "$SKIP_DOWNLOAD" != true ]; then
    124 		curl -C - -L -O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz"
    125 	fi
    126 	cat >> SHASUMS <<EOF
    127 6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c  libpng-$LIBPNG.tar.xz
    128 EOF
    129 fi
    130 if [ "$SKIP_LIBWEBP" != true ]; then
    131 	if [ "$SKIP_DOWNLOAD" != true ]; then
    132 		curl -C - -L -O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz"
    133 	fi
    134 	cat >> SHASUMS <<EOF
    135 61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5  libwebp-$LIBWEBP.tar.gz
    136 EOF
    137 fi
    138 if [ "$SKIP_ZSTD" != true ]; then
    139 	if [ "$SKIP_DOWNLOAD" != true ]; then
    140 		curl -C - -L -O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz"
    141 	fi
    142 	cat >> SHASUMS <<EOF
    143 8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1  zstd-$ZSTD.tar.gz
    144 EOF
    145 fi
    146 if [ "$SKIP_QT" != true ]; then
    147 	if [ "$SKIP_DOWNLOAD" != true ]; then
    148 		curl -C - -L \
    149 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \
    150 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \
    151 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \
    152 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \
    153 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \
    154 			-O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtwayland-everywhere-src-$QT.tar.xz" 
    155 	fi
    156 	cat >> SHASUMS <<EOF
    157 c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599  qtbase-everywhere-src-$QT.tar.xz
    158 e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6  qtimageformats-everywhere-src-$QT.tar.xz
    159 fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01  qtsvg-everywhere-src-$QT.tar.xz
    160 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a  qttools-everywhere-src-$QT.tar.xz
    161 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9  qttranslations-everywhere-src-$QT.tar.xz
    162 a2a057e1dd644bd44abb9990fecc194b2e25c2e0f39e81aa9fee4c1e5e2a8a5b  qtwayland-everywhere-src-$QT.tar.xz
    163 EOF
    164 fi
    165 
    166 shasum -a 256 --check SHASUMS
    167 
    168 # Have to clone with git, because it does version detection.
    169 if [ "$SKIP_DOWNLOAD" != true ]; then
    170 	if [ ! -d "SPIRV-Cross" ]; then
    171 		git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS --depth 1
    172 	fi
    173 fi
    174 
    175 echo "Building libbacktrace..."
    176 rm -fr "libbacktrace-$LIBBACKTRACE"
    177 unzip "$LIBBACKTRACE.zip"
    178 cd "libbacktrace-$LIBBACKTRACE"
    179 ./configure --prefix="$INSTALLDIR" --with-pic
    180 make
    181 make install
    182 cd ..
    183 
    184 if [ "$SKIP_LIBPNG" != true ]; then
    185 	echo "Building libpng..."
    186 	rm -fr "libpng-$LIBPNG"
    187 	tar xf "libpng-$LIBPNG.tar.xz"
    188 	cd "libpng-$LIBPNG"
    189 	cmake -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 Ninja
    190 	cmake --build build --parallel
    191 	ninja -C build install
    192 	cd ..
    193 fi
    194 
    195 if [ "$SKIP_LIBJPEG" != true ]; then
    196 	echo "Building libjpeg..."
    197 	rm -fr "libjpeg-turbo-$LIBJPEGTURBO"
    198 	tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz"
    199 	cd "libjpeg-turbo-$LIBJPEGTURBO"
    200 	cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build -G Ninja
    201 	cmake --build build --parallel
    202 	ninja -C build install
    203 	cd ..
    204 fi
    205 
    206 if [ "$SKIP_ZSTD" != true ]; then
    207 	echo "Building Zstandard..."
    208 	rm -fr "zstd-$ZSTD"
    209 	tar xf "zstd-$ZSTD.tar.gz"
    210 	cd "zstd-$ZSTD"
    211 	cmake -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/cmake
    212 	cmake --build build --parallel
    213 	ninja -C build install
    214 	cd ..
    215 fi
    216 
    217 if [ "$SKIP_LIBWEBP" != true ]; then
    218 	echo "Building WebP..."
    219 	rm -fr "libwebp-$LIBWEBP"
    220 	tar xf "libwebp-$LIBWEBP.tar.gz"
    221 	cd "libwebp-$LIBWEBP"
    222 	cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -B build -G Ninja \
    223 		-DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \
    224 		-DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON
    225 	cmake --build build --parallel
    226 	ninja -C build install
    227 	cd ..
    228 fi
    229 
    230 if [ "$SKIP_FREETYPE" != true ]; then
    231 	if [ "$SKIP_HARFBUZZ" != true ]; then
    232 		echo "Building FreeType without HarfBuzz..."
    233 		rm -fr "freetype-$FREETYPE"
    234 		tar xf "freetype-$FREETYPE.tar.xz"
    235 		cd "freetype-$FREETYPE"
    236 		cmake -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_DISABLE_BROTLI=TRUE -DFT_DISABLE_HARFBUZZ=TRUE -B build -G Ninja
    237 		cmake --build build --parallel
    238 		ninja -C build install
    239 		cd ..
    240 
    241 		echo "Building HarfBuzz..."
    242 		rm -fr "harfbuzz-$HARFBUZZ"
    243 		tar xf "harfbuzz-$HARFBUZZ.tar.gz"
    244 		cd "harfbuzz-$HARFBUZZ"
    245 		cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build -G Ninja
    246 		cmake --build build --parallel
    247 		ninja -C build install
    248 		cd ..
    249 	fi
    250 
    251 	echo "Building FreeType with HarfBuzz..."
    252 	rm -fr "freetype-$FREETYPE"
    253 	tar xf "freetype-$FREETYPE.tar.xz"
    254 	cd "freetype-$FREETYPE"
    255 	cmake -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_DISABLE_BROTLI=TRUE -DFT_REQUIRE_HARFBUZZ=TRUE -B build -G Ninja
    256 	cmake --build build --parallel
    257 	ninja -C build install
    258 	cd ..
    259 fi
    260 
    261 echo "Building SDL2..."
    262 rm -fr "SDL2-$SDL2"
    263 tar xf "SDL2-$SDL2.tar.gz"
    264 cd "SDL2-$SDL2"
    265 cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DSDL_SHARED=ON -DSDL_STATIC=OFF -G Ninja
    266 cmake --build build --parallel
    267 ninja -C build install
    268 cd ..
    269 
    270 if [ "$SKIP_QT" != true ]; then
    271 	# Couple notes:
    272 	# -fontconfig is needed otherwise Qt Widgets render only boxes.
    273 	# -qt-doubleconversion avoids a dependency on libdouble-conversion.
    274 	# ICU avoids pulling in a bunch of large libraries, and hopefully we can get away without it.
    275 	# OpenGL is needed to render window decorations in Wayland, apparently.
    276 	echo "Building Qt Base..."
    277 	rm -fr "qtbase-everywhere-src-$QT"
    278 	tar xf "qtbase-everywhere-src-$QT.tar.xz"
    279 	cd "qtbase-everywhere-src-$QT"
    280 	patch -p1 < "$SCRIPTDIR/qtbase-disable-pcre2-jit.patch"
    281 	mkdir build
    282 	cd build
    283 	../configure -prefix "$INSTALLDIR" -release -dbus-linked -gui -widgets -fontconfig -qt-doubleconversion -ssl -openssl-runtime -opengl desktop -qpa xcb,wayland -xkbcommon -xcb -gtk -- -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
    284 	cmake --build . --parallel
    285 	ninja install
    286 	cd ../../
    287 
    288 	echo "Building Qt SVG..."
    289 	rm -fr "qtsvg-everywhere-src-$QT"
    290 	tar xf "qtsvg-everywhere-src-$QT.tar.xz"
    291 	cd "qtsvg-everywhere-src-$QT"
    292 	mkdir build
    293 	cd build
    294 	"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR"
    295 	cmake --build . --parallel
    296 	ninja install
    297 	cd ../../
    298 
    299 	echo "Building Qt Image Formats..."
    300 	rm -fr "qtimageformats-everywhere-src-$QT"
    301 	tar xf "qtimageformats-everywhere-src-$QT.tar.xz"
    302 	cd "qtimageformats-everywhere-src-$QT"
    303 	mkdir build
    304 	cd build
    305 	"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DFEATURE_system_webp=ON
    306 	cmake --build . --parallel
    307 	ninja install
    308 	cd ../../
    309 
    310 	echo "Building Qt Wayland..."
    311 	rm -fr "qtwayland-everywhere-src-$QT"
    312 	tar xf "qtwayland-everywhere-src-$QT.tar.xz"
    313 	cd "qtwayland-everywhere-src-$QT"
    314 	mkdir build
    315 	cd build
    316 	"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR"
    317 	cmake --build . --parallel
    318 	ninja install
    319 	cd ../../
    320 
    321 	echo "Installing Qt Tools..."
    322 	rm -fr "qttools-everywhere-src-$QT"
    323 	tar xf "qttools-everywhere-src-$QT.tar.xz"
    324 	cd "qttools-everywhere-src-$QT"
    325 
    326 	# Force disable clang scanning, it gets very confused.
    327 	patch -u configure.cmake <<EOF
    328 --- configure.cmake
    329 +++ configure.cmake
    330 @@ -14,12 +14,12 @@
    331  # Presumably because 6.0 ClangConfig.cmake files are not good enough?
    332  # In any case explicitly request a minimum version of 8.x for now, otherwise
    333  # building with CMake will fail at compilation time.
    334 -qt_find_package(WrapLibClang 8 PROVIDED_TARGETS WrapLibClang::WrapLibClang)
    335 +#qt_find_package(WrapLibClang 8 PROVIDED_TARGETS WrapLibClang::WrapLibClang)
    336  # special case end
    337 
    338 -if(TARGET WrapLibClang::WrapLibClang)
    339 -    set(TEST_libclang "ON" CACHE BOOL "Required libclang version found." FORCE)
    340 -endif()
    341 +#if(TARGET WrapLibClang::WrapLibClang)
    342 +#    set(TEST_libclang "ON" CACHE BOOL "Required libclang version found." FORCE)
    343 +#endif()
    344 
    345 
    346 
    347 EOF
    348 
    349 	mkdir build
    350 	cd build
    351 	"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR" -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=OFF
    352 	cmake --build . --parallel
    353 	ninja install
    354 	cd ../../
    355 
    356 	echo "Installing Qt Translations..."
    357 	rm -fr "qttranslations-everywhere-src-$QT"
    358 	tar xf "qttranslations-everywhere-src-$QT.tar.xz"
    359 	cd "qttranslations-everywhere-src-$QT"
    360 	mkdir build
    361 	cd build
    362 	"$INSTALLDIR/bin/qt-configure-module" .. -- -DCMAKE_PREFIX_PATH="$INSTALLDIR"
    363 	cmake --build . --parallel
    364 	ninja install
    365 	cd ../../
    366 fi
    367 
    368 echo "Building shaderc..."
    369 rm -fr "shaderc-$SHADERC"
    370 tar xf "shaderc-$SHADERC.tar.gz"
    371 cd "shaderc-$SHADERC"
    372 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build -G Ninja
    373 cmake --build build --parallel
    374 ninja -C build install
    375 cd ..
    376 
    377 echo "Building SPIRV-Cross..."
    378 cd SPIRV-Cross
    379 rm -fr build
    380 cmake -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 Ninja
    381 cmake --build build --parallel
    382 ninja -C build install
    383 cd ..
    384 
    385 echo "Building cpuinfo..."
    386 rm -fr "cpuinfo-$CPUINFO"
    387 tar xf "cpuinfo-$CPUINFO.tar.gz"
    388 cd "cpuinfo-$CPUINFO"
    389 cmake -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 Ninja
    390 cmake --build build --parallel
    391 ninja -C build install
    392 cd ..
    393 
    394 echo "Building discord-rpc..."
    395 rm -fr "discord-rpc-$DISCORD_RPC"
    396 tar xf "discord-rpc-$DISCORD_RPC.tar.gz"
    397 cd "discord-rpc-$DISCORD_RPC"
    398 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -B build -G Ninja
    399 cmake --build build --parallel
    400 ninja -C build install
    401 cd ..
    402 
    403 echo "Building lunasvg..."
    404 rm -fr "lunasvg-$LUNASVG"
    405 tar xf "lunasvg-$LUNASVG.tar.gz"
    406 cd "lunasvg-$LUNASVG"
    407 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DBUILD_SHARED_LIBS=ON -DLUNASVG_BUILD_EXAMPLES=OFF -B build -G Ninja
    408 cmake --build build --parallel
    409 ninja -C build install
    410 cd ..
    411 
    412 echo "Building soundtouch..."
    413 rm -fr "soundtouch-$SOUNDTOUCH"
    414 tar xf "soundtouch-$SOUNDTOUCH.tar.gz"
    415 cd "soundtouch-$SOUNDTOUCH"
    416 cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$INSTALLDIR" -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -B build -G Ninja
    417 cmake --build build --parallel
    418 ninja -C build install
    419 cd ..
    420 
    421 if [ "$SKIP_CLEANUP" != true ]; then
    422 	echo "Cleaning up..."
    423 	cd ..
    424 	rm -fr deps-build
    425 fi