build-dependencies-mac.sh (17356B)
1 #!/bin/bash 2 3 set -e 4 5 merge_binaries() { 6 X86DIR=$1 7 ARMDIR=$2 8 echo "Merging ARM64 binaries from $ARMDIR into fat binaries at $X86DIR..." 9 10 IFS=" 11 " 12 pushd "$X86DIR" 13 for X86BIN in $(find . -type f \( -name '*.dylib' -o -name '*.a' -o -perm +111 \)); do 14 if file "$X86DIR/$X86BIN" | grep "Mach-O " >/dev/null; then 15 ARMBIN="${ARMDIR}/${X86BIN}" 16 echo "Merge $ARMBIN to $X86BIN..." 17 lipo -create "$X86BIN" "$ARMBIN" -o "$X86BIN" 18 fi 19 done 20 popd 21 } 22 23 if [ "$#" -ne 1 ]; then 24 echo "Syntax: $0 <output directory>" 25 exit 1 26 fi 27 28 export MACOSX_DEPLOYMENT_TARGET=11.0 29 30 NPROCS="$(getconf _NPROCESSORS_ONLN)" 31 SCRIPTDIR=$(realpath $(dirname "${BASH_SOURCE[0]}")) 32 INSTALLDIR="$1" 33 if [ "${INSTALLDIR:0:1}" != "/" ]; then 34 INSTALLDIR="$PWD/$INSTALLDIR" 35 fi 36 37 FREETYPE=2.13.3 38 HARFBUZZ=9.0.0 39 SDL2=2.30.6 40 ZSTD=1.5.6 41 LIBPNG=1.6.43 42 LIBJPEGTURBO=3.0.3 43 LIBWEBP=1.4.0 44 FFMPEG=7.0.2 45 MOLTENVK=1.2.9 46 QT=6.7.2 47 48 CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 49 DISCORD_RPC=144f3a3f1209994d8d9e8a87964a989cb9911c1e 50 LUNASVG=9af1ac7b90658a279b372add52d6f77a4ebb482c 51 SHADERC=f60bb80e255144e71776e2ad570d89b78ea2ab4f 52 SOUNDTOUCH=463ade388f3a51da078dc9ed062bf28e4ba29da7 53 SPIRV_CROSS=vulkan-sdk-1.3.290.0 54 55 mkdir -p deps-build 56 cd deps-build 57 58 export PKG_CONFIG_PATH="$INSTALLDIR/lib/pkgconfig:$PKG_CONFIG_PATH" 59 export LDFLAGS="-L$INSTALLDIR/lib $LDFLAGS" 60 export CFLAGS="-I$INSTALLDIR/include $CFLAGS" 61 export CXXFLAGS="-I$INSTALLDIR/include $CXXFLAGS" 62 CMAKE_COMMON=( 63 -DCMAKE_BUILD_TYPE=Release 64 -DCMAKE_SHARED_LINKER_FLAGS="-dead_strip -dead_strip_dylibs" 65 -DCMAKE_PREFIX_PATH="$INSTALLDIR" 66 -DCMAKE_INSTALL_PREFIX="$INSTALLDIR" 67 -DCMAKE_INSTALL_NAME_DIR='$<INSTALL_PREFIX>/lib' 68 ) 69 CMAKE_ARCH_X64=-DCMAKE_OSX_ARCHITECTURES="x86_64" 70 CMAKE_ARCH_ARM64=-DCMAKE_OSX_ARCHITECTURES="arm64" 71 CMAKE_ARCH_UNIVERSAL=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" 72 73 cat > SHASUMS <<EOF 74 0550350666d427c74daeb85d5ac7bb353acba5f76956395995311a9c6f063289 freetype-$FREETYPE.tar.xz 75 b7e481b109d19aefdba31e9f5888aa0cdfbe7608fed9a43494c060ce1f8a34d2 harfbuzz-$HARFBUZZ.tar.gz 76 6a5ca0652392a2d7c9db2ae5b40210843c0bbc081cbd410825ab00cc59f14a6c libpng-$LIBPNG.tar.xz 77 343e789069fc7afbcdfe44dbba7dbbf45afa98a15150e079a38e60e44578865d libjpeg-turbo-$LIBJPEGTURBO.tar.gz 78 61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5 libwebp-$LIBWEBP.tar.gz 79 c6ef64ca18a19d13df6eb22df9aff19fb0db65610a74cc81dae33a82235cacd4 SDL2-$SDL2.tar.gz 80 8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1 zstd-$ZSTD.tar.gz 81 8646515b638a3ad303e23af6a3587734447cb8fc0a0c064ecdb8e95c4fd8b389 ffmpeg-$FFMPEG.tar.xz 82 f415a09385030c6510a936155ce211f617c31506db5fbc563e804345f1ecf56e v$MOLTENVK.tar.gz 83 c5f22a5e10fb162895ded7de0963328e7307611c688487b5d152c9ee64767599 qtbase-everywhere-src-$QT.tar.xz 84 e1a1d8785fae67d16ad0a443b01d5f32663a6b68d275f1806ebab257485ce5d6 qtimageformats-everywhere-src-$QT.tar.xz 85 fb0d1286a35be3583fee34aeb5843c94719e07193bdf1d4d8b0dc14009caef01 qtsvg-everywhere-src-$QT.tar.xz 86 58e855ad1b2533094726c8a425766b63a04a0eede2ed85086860e54593aa4b2a qttools-everywhere-src-$QT.tar.xz 87 9845780b5dc1b7279d57836db51aeaf2e4a1160c42be09750616f39157582ca9 qttranslations-everywhere-src-$QT.tar.xz 88 e1351218d270db49c3dddcba04fb2153b09731ea3fa6830e423f5952f44585be cpuinfo-$CPUINFO.tar.gz 89 3eea5ccce6670c126282f1ba4d32c19d486db49a1a5cbfb8d6f48774784d310c discord-rpc-$DISCORD_RPC.tar.gz 90 3998b024b0d442614a9ee270e76e018bb37a17b8c6941212171731123cbbcac7 lunasvg-$LUNASVG.tar.gz 91 4c1780b6c65c27c4dcb109f08ab632241c98b77fe2e22be726c151ff514482bf shaderc-$SHADERC.tar.gz 92 fe45c2af99f6102d2704277d392c1c83b55180a70bfd17fb888cc84a54b70573 soundtouch-$SOUNDTOUCH.tar.gz 93 EOF 94 95 curl -L \ 96 -o "freetype-$FREETYPE.tar.xz" "https://sourceforge.net/projects/freetype/files/freetype2/$FREETYPE/freetype-$FREETYPE.tar.xz/download" \ 97 -o "harfbuzz-$HARFBUZZ.tar.gz" "https://github.com/harfbuzz/harfbuzz/archive/refs/tags/$HARFBUZZ.tar.gz" \ 98 -O "https://downloads.sourceforge.net/project/libpng/libpng16/$LIBPNG/libpng-$LIBPNG.tar.xz" \ 99 -O "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$LIBJPEGTURBO/libjpeg-turbo-$LIBJPEGTURBO.tar.gz" \ 100 -O "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$LIBWEBP.tar.gz" \ 101 -O "https://github.com/libsdl-org/SDL/releases/download/release-$SDL2/SDL2-$SDL2.tar.gz" \ 102 -O "https://github.com/facebook/zstd/releases/download/v$ZSTD/zstd-$ZSTD.tar.gz" \ 103 -O "https://ffmpeg.org/releases/ffmpeg-$FFMPEG.tar.xz" \ 104 -O "https://github.com/KhronosGroup/MoltenVK/archive/refs/tags/v$MOLTENVK.tar.gz" \ 105 -O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtbase-everywhere-src-$QT.tar.xz" \ 106 -O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtimageformats-everywhere-src-$QT.tar.xz" \ 107 -O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qtsvg-everywhere-src-$QT.tar.xz" \ 108 -O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttools-everywhere-src-$QT.tar.xz" \ 109 -O "https://download.qt.io/official_releases/qt/${QT%.*}/$QT/submodules/qttranslations-everywhere-src-$QT.tar.xz" \ 110 -o "cpuinfo-$CPUINFO.tar.gz" "https://github.com/stenzek/cpuinfo/archive/$CPUINFO.tar.gz" \ 111 -o "discord-rpc-$DISCORD_RPC.tar.gz" "https://github.com/stenzek/discord-rpc/archive/$DISCORD_RPC.tar.gz" \ 112 -o "lunasvg-$LUNASVG.tar.gz" "https://github.com/stenzek/lunasvg/archive/$LUNASVG.tar.gz" \ 113 -o "shaderc-$SHADERC.tar.gz" "https://github.com/stenzek/shaderc/archive/$SHADERC.tar.gz" \ 114 -o "soundtouch-$SOUNDTOUCH.tar.gz" "https://github.com/stenzek/soundtouch/archive/$SOUNDTOUCH.tar.gz" 115 116 shasum -a 256 --check SHASUMS 117 118 # Have to clone with git, because it does version detection. 119 if [ ! -d "SPIRV-Cross" ]; then 120 git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b $SPIRV_CROSS --depth 1 121 fi 122 123 echo "Installing libpng..." 124 rm -fr "libpng-$LIBPNG" 125 tar xf "libpng-$LIBPNG.tar.xz" 126 cd "libpng-$LIBPNG" 127 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_FRAMEWORK=OFF -B build 128 make -C build "-j$NPROCS" 129 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_ARM_NEON=on -DPNG_FRAMEWORK=OFF -B build-arm64 130 make -C build-arm64 "-j$NPROCS" 131 merge_binaries $(realpath build) $(realpath build-arm64) 132 make -C build install 133 cd .. 134 135 echo "Building libjpeg..." 136 rm -fr "libjpeg-turbo-$LIBJPEGTURBO" 137 tar xf "libjpeg-turbo-$LIBJPEGTURBO.tar.gz" 138 cd "libjpeg-turbo-$LIBJPEGTURBO" 139 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build 140 make -C build "-j$NPROCS" 141 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build-arm64 142 make -C build-arm64 "-j$NPROCS" 143 merge_binaries $(realpath build) $(realpath build-arm64) 144 make -C build install 145 cd .. 146 147 echo "Installing Zstd..." 148 rm -fr "zstd-$ZSTD" 149 tar xf "zstd-$ZSTD.tar.gz" 150 cd "zstd-$ZSTD" 151 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir build/cmake 152 make -C build-dir "-j$NPROCS" 153 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -DBUILD_SHARED_LIBS=ON -DZSTD_BUILD_PROGRAMS=OFF -B build-dir-arm64 build/cmake 154 make -C build-dir-arm64 "-j$NPROCS" 155 merge_binaries $(realpath build-dir) $(realpath build-dir-arm64) 156 make -C build-dir install 157 cd .. 158 159 echo "Building FreeType without HarfBuzz..." 160 rm -fr "freetype-$FREETYPE" 161 tar xf "freetype-$FREETYPE.tar.xz" 162 cd "freetype-$FREETYPE" 163 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -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 164 cmake --build build --parallel 165 cmake --install build 166 cd .. 167 168 echo "Building HarfBuzz..." 169 rm -fr "harfbuzz-$HARFBUZZ" 170 tar xf "harfbuzz-$HARFBUZZ.tar.gz" 171 cd "harfbuzz-$HARFBUZZ" 172 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build 173 cmake --build build --parallel 174 cmake --install build 175 cd .. 176 177 echo "Building FreeType with HarfBuzz..." 178 rm -fr "freetype-$FREETYPE" 179 tar xf "freetype-$FREETYPE.tar.xz" 180 cd "freetype-$FREETYPE" 181 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -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 182 cmake --build build --parallel 183 cmake --install build 184 cd .. 185 186 echo "Installing WebP..." 187 rm -fr "libwebp-$LIBWEBP" 188 tar xf "libwebp-$LIBWEBP.tar.gz" 189 cd "libwebp-$LIBWEBP" 190 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -B build \ 191 -DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \ 192 -DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON 193 make -C build "-j$NPROCS" 194 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -B build-arm64 \ 195 -DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF \ 196 -DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON 197 make -C build-arm64 "-j$NPROCS" 198 merge_binaries $(realpath build) $(realpath build-arm64) 199 make -C build install 200 cd .. 201 202 echo "Installing SDL2..." 203 rm -fr "SDL2-$SDL2" 204 tar xf "SDL2-$SDL2.tar.gz" 205 cd "SDL2-$SDL2" 206 cmake -B build "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSDL_X11=OFF -DBUILD_SHARED_LIBS=ON 207 make -C build "-j$NPROCS" 208 make -C build install 209 cd .. 210 211 echo "Installing FFmpeg..." 212 rm -fr "ffmpeg-$FFMPEG" 213 tar xf "ffmpeg-$FFMPEG.tar.xz" 214 cd "ffmpeg-$FFMPEG" 215 mkdir build 216 cd build 217 LDFLAGS="-dead_strip $LDFLAGS" CFLAGS="-Os $CFLAGS" CXXFLAGS="-Os $CXXFLAGS" \ 218 ../configure --prefix="$INSTALLDIR" \ 219 --enable-cross-compile --arch=x86_64 --cc='clang -arch x86_64' --cxx='clang++ -arch x86_64' --disable-x86asm \ 220 --disable-all --disable-autodetect --disable-static --enable-shared \ 221 --enable-avcodec --enable-avformat --enable-avutil --enable-swresample --enable-swscale \ 222 --enable-audiotoolbox --enable-videotoolbox \ 223 --enable-encoder=ffv1,qtrle,pcm_s16be,pcm_s16le,*_at,*_videotoolbox \ 224 --enable-muxer=avi,matroska,mov,mp3,mp4,wav \ 225 --enable-protocol=file 226 make "-j$NPROCS" 227 cd .. 228 mkdir build-arm64 229 cd build-arm64 230 LDFLAGS="-dead_strip $LDFLAGS" CFLAGS="-Os $CFLAGS" CXXFLAGS="-Os $CXXFLAGS" \ 231 ../configure --prefix="$INSTALLDIR" \ 232 --enable-cross-compile --arch=arm64 --cc='clang -arch arm64' --cxx='clang++ -arch arm64' --disable-x86asm \ 233 --disable-all --disable-autodetect --disable-static --enable-shared \ 234 --enable-avcodec --enable-avformat --enable-avutil --enable-swresample --enable-swscale \ 235 --enable-audiotoolbox --enable-videotoolbox \ 236 --enable-encoder=ffv1,qtrle,pcm_s16be,pcm_s16le,*_at,*_videotoolbox \ 237 --enable-muxer=avi,matroska,mov,mp3,mp4,wav \ 238 --enable-protocol=file 239 make "-j$NPROCS" 240 cd .. 241 merge_binaries $(realpath build) $(realpath build-arm64) 242 cd build 243 make install 244 cd ../.. 245 246 # MoltenVK already builds universal binaries, nothing special to do here. 247 echo "Installing MoltenVK..." 248 rm -fr "MoltenVK-${MOLTENVK}" 249 tar xf "v$MOLTENVK.tar.gz" 250 cd "MoltenVK-${MOLTENVK}" 251 ./fetchDependencies --macos 252 make macos 253 cp Package/Latest/MoltenVK/dynamic/dylib/macOS/libMoltenVK.dylib "$INSTALLDIR/lib/" 254 cd .. 255 256 echo "Installing Qt Base..." 257 rm -fr "qtbase-everywhere-src-$QT" 258 tar xf "qtbase-everywhere-src-$QT.tar.xz" 259 cd "qtbase-everywhere-src-$QT" 260 261 # since we don't have a direct reference to QtSvg, it doesn't deployed directly from the main binary 262 # (only indirectly from iconengines), and the libqsvg.dylib imageformat plugin does not get deployed. 263 # We could run macdeployqt twice, but that's even more janky than patching it. 264 265 # https://github.com/qt/qtbase/commit/7b018629c3c3ab23665bf1da00c43c1546042035 266 # The QProcess default wait time of 30s may be too short in e.g. CI environments where processes may be blocked 267 # for a longer time waiting for CPU or IO. 268 269 patch -u src/tools/macdeployqt/shared/shared.cpp <<EOF 270 --- shared.cpp 271 +++ shared.cpp 272 @@ -152,7 +152,7 @@ 273 LogDebug() << " inspecting" << binaryPath; 274 QProcess otool; 275 otool.start("otool", QStringList() << "-L" << binaryPath); 276 - otool.waitForFinished(); 277 + otool.waitForFinished(-1); 278 279 if (otool.exitStatus() != QProcess::NormalExit || otool.exitCode() != 0) { 280 LogError() << otool.readAllStandardError(); 281 @@ -1122,14 +1122,8 @@ 282 addPlugins(QStringLiteral("networkinformation")); 283 } 284 285 - // All image formats (svg if QtSvg is used) 286 - const bool usesSvg = deploymentInfo.containsModule("Svg", libInfix); 287 - addPlugins(QStringLiteral("imageformats"), [usesSvg](const QString &lib) { 288 - if (lib.contains(QStringLiteral("qsvg")) && !usesSvg) 289 - return false; 290 - return true; 291 - }); 292 - 293 + // All image formats 294 + addPlugins(QStringLiteral("imageformats")); 295 addPlugins(QStringLiteral("iconengines")); 296 297 // Platforminputcontext plugins if QtGui is in use 298 EOF 299 300 cmake -B build "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_dbus=OFF -DFEATURE_framework=OFF -DFEATURE_icu=OFF -DFEATURE_opengl=OFF -DFEATURE_sql=OFF -DFEATURE_gssapi=OFF -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON 301 make -C build "-j$NPROCS" 302 make -C build install 303 cd .. 304 305 echo "Installing Qt SVG..." 306 rm -fr "qtsvg-everywhere-src-$QT" 307 tar xf "qtsvg-everywhere-src-$QT.tar.xz" 308 cd "qtsvg-everywhere-src-$QT" 309 mkdir build 310 cd build 311 "$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" 312 make "-j$NPROCS" 313 make install 314 cd ../.. 315 316 echo "Installing Qt Image Formats..." 317 rm -fr "qtimageformats-everywhere-src-$QT" 318 tar xf "qtimageformats-everywhere-src-$QT.tar.xz" 319 cd "qtimageformats-everywhere-src-$QT" 320 mkdir build 321 cd build 322 "$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_system_webp=ON 323 make "-j$NPROCS" 324 make install 325 cd ../.. 326 327 echo "Installing Qt Tools..." 328 rm -fr "qttools-everywhere-src-$QT" 329 tar xf "qttools-everywhere-src-$QT.tar.xz" 330 cd "qttools-everywhere-src-$QT" 331 mkdir build 332 cd build 333 "$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=ON -DFEATURE_kmap2qmap=OFF -DFEATURE_linguist=ON -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF 334 make "-j$NPROCS" 335 make install 336 cd ../.. 337 338 echo "Installing Qt Translations..." 339 rm -fr "qttranslations-everywhere-src-$QT" 340 tar xf "qttranslations-everywhere-src-$QT.tar.xz" 341 cd "qttranslations-everywhere-src-$QT" 342 mkdir build 343 cd build 344 "$INSTALLDIR/bin/qt-configure-module" .. -- "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" 345 make "-j$NPROCS" 346 make install 347 cd ../.. 348 349 echo "Building shaderc..." 350 rm -fr "shaderc-$SHADERC" 351 tar xf "shaderc-$SHADERC.tar.gz" 352 cd "shaderc-$SHADERC" 353 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DSHADERC_SKIP_TESTS=ON -DSHADERC_SKIP_EXAMPLES=ON -DSHADERC_SKIP_COPYRIGHT_CHECK=ON -B build 354 make -C build "-j$NPROCS" 355 make -C build install 356 cd .. 357 358 echo "Building SPIRV-Cross..." 359 cd SPIRV-Cross 360 rm -fr build 361 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -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=ON -DSPIRV_CROSS_ENABLE_CPP=OFF -DSPIRV_CROSS_ENABLE_REFLECT=OFF -DSPIRV_CROSS_ENABLE_C_API=ON -DSPIRV_CROSS_ENABLE_UTIL=ON -B build 362 cmake --build build --parallel 363 cmake --install build 364 cd .. 365 366 echo "Building cpuinfo..." 367 rm -fr "cpuinfo-$CPUINFO" 368 tar xf "cpuinfo-$CPUINFO.tar.gz" 369 cd "cpuinfo-$CPUINFO" 370 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_X64" -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 371 make -C build "-j$NPROCS" 372 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_ARM64" -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-arm64 373 make -C build-arm64 "-j$NPROCS" 374 merge_binaries $(realpath build) $(realpath build-arm64) 375 make -C build install 376 cd .. 377 378 echo "Building discord-rpc..." 379 rm -fr "discord-rpc-$DISCORD_RPC" 380 tar xf "discord-rpc-$DISCORD_RPC.tar.gz" 381 cd "discord-rpc-$DISCORD_RPC" 382 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -B build 383 cmake --build build --parallel 384 cmake --install build 385 cd .. 386 387 echo "Building lunasvg..." 388 rm -fr "lunasvg-$LUNASVG" 389 tar xf "lunasvg-$LUNASVG.tar.gz" 390 cd "lunasvg-$LUNASVG" 391 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DBUILD_SHARED_LIBS=ON -DLUNASVG_BUILD_EXAMPLES=OFF -B build -G Ninja 392 cmake --build build --parallel 393 ninja -C build install 394 cd .. 395 396 echo "Building soundtouch..." 397 rm -fr "soundtouch-$SOUNDTOUCH" 398 tar xf "soundtouch-$SOUNDTOUCH.tar.gz" 399 cd "soundtouch-$SOUNDTOUCH" 400 cmake "${CMAKE_COMMON[@]}" "$CMAKE_ARCH_UNIVERSAL" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -B build 401 cmake --build build --parallel 402 cmake --install build 403 cd .. 404 405 echo "Cleaning up..." 406 cd .. 407 rm -rf deps-build