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