build-dependencies-windows-arm64.bat (17445B)
1 @echo off 2 setlocal enabledelayedexpansion 3 4 echo Setting environment... 5 if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" ( 6 call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" 7 ) else if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" ( 8 call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" 9 ) else ( 10 echo Visual Studio 2022 not found. 11 goto error 12 ) 13 14 set SEVENZIP="C:\Program Files\7-Zip\7z.exe" 15 set PATCH="C:\Program Files\Git\usr\bin\patch.exe" 16 17 if defined DEBUG ( 18 echo DEBUG=%DEBUG% 19 ) else ( 20 set DEBUG=1 21 ) 22 23 pushd %~dp0 24 set "SCRIPTDIR=%CD%" 25 cd ..\..\dep\msvc 26 mkdir deps-build 27 cd deps-build || goto error 28 set "BUILDDIR=%CD%" 29 cd .. 30 mkdir deps-arm64 31 cd deps-arm64 || goto error 32 set "INSTALLDIR=%CD%" 33 cd .. 34 cd deps-x64 || goto error 35 set "X64INSTALLDIR=%CD%" 36 cd .. 37 popd 38 39 echo SCRIPTDIR=%SCRIPTDIR% 40 echo BUILDDIR=%BUILDDIR% 41 echo INSTALLDIR=%INSTALLDIR% 42 43 cd "%BUILDDIR%" 44 45 set FREETYPE=2.13.3 46 set HARFBUZZ=9.0.0 47 set LIBJPEGTURBO=3.0.3 48 set LIBPNG=1643 49 set QT=6.7.2 50 set QTMINOR=6.7 51 set SDL2=2.30.6 52 set WEBP=1.4.0 53 set ZLIB=1.3.1 54 set ZLIBSHORT=131 55 set ZSTD=1.5.6 56 57 set CPUINFO=7524ad504fdcfcf75a18a133da6abd75c5d48053 58 set DISCORD_RPC=144f3a3f1209994d8d9e8a87964a989cb9911c1e 59 set LUNASVG=9af1ac7b90658a279b372add52d6f77a4ebb482c 60 set SHADERC=f60bb80e255144e71776e2ad570d89b78ea2ab4f 61 set SOUNDTOUCH=463ade388f3a51da078dc9ed062bf28e4ba29da7 62 set SPIRV_CROSS=vulkan-sdk-1.3.290.0 63 64 call :downloadfile "freetype-%FREETYPE%.tar.gz" https://download.savannah.gnu.org/releases/freetype/freetype-%FREETYPE%.tar.gz 5c3a8e78f7b24c20b25b54ee575d6daa40007a5f4eea2845861c3409b3021747 || goto error 65 call :downloadfile "harfbuzz-%HARFBUZZ%.zip" https://github.com/harfbuzz/harfbuzz/archive/refs/tags/%HARFBUZZ%.zip 314acd13d88c24826b88799439da8cd3dbcefd17a08dde9bdfd5ca4c3db62047 || goto error 66 call :downloadfile "lpng%LIBPNG%.zip" https://download.sourceforge.net/libpng/lpng1643.zip fc466a1e638e635d6c66363bdf3f38555b81b0141d0b06ba45b49ccca327436d || goto error 67 call :downloadfile "libjpeg-turbo-%LIBJPEGTURBO%.tar.gz" "https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/%LIBJPEGTURBO%/libjpeg-turbo-%LIBJPEGTURBO%.tar.gz" 343e789069fc7afbcdfe44dbba7dbbf45afa98a15150e079a38e60e44578865d || goto error 68 call :downloadfile "SDL2-%SDL2%.zip" "https://github.com/libsdl-org/SDL/releases/download/release-%SDL2%/SDL2-%SDL2%.zip" 6d4e00fcbee9fd8985cc2869edeb0b1a751912b87506cf2fb6471e73d981e1f4 || goto error 69 call :downloadfile "qtbase-everywhere-src-%QT%.zip" "https://download.qt.io/official_releases/qt/%QTMINOR%/%QT%/submodules/qtbase-everywhere-src-%QT%.zip" 488119aad60719a085a1e45c31641ac2406ef86fc088a3c99885c18e9d6b4bb9 || goto error 70 call :downloadfile "qtimageformats-everywhere-src-%QT%.zip" "https://download.qt.io/official_releases/qt/%QTMINOR%/%QT%/submodules/qtimageformats-everywhere-src-%QT%.zip" 8e736b02db7dd67dbe834d56503b242344ce85d3532da692f1812b30ccf80997 || goto error 71 call :downloadfile "qtsvg-everywhere-src-%QT%.zip" "https://download.qt.io/official_releases/qt/%QTMINOR%/%QT%/submodules/qtsvg-everywhere-src-%QT%.zip" 85a22142270a92be0dd0ab5d27cc53617b2a2f1a45fc0a3890024164032f8475 || goto error 72 call :downloadfile "qttools-everywhere-src-%QT%.zip" "https://download.qt.io/official_releases/qt/%QTMINOR%/%QT%/submodules/qttools-everywhere-src-%QT%.zip" 9e15f1fdbd83e4123e733bff20aff1b45921c09056c3790fa42eb71d0a5cd01f || goto error 73 call :downloadfile "qttranslations-everywhere-src-%QT%.zip" "https://download.qt.io/official_releases/qt/%QTMINOR%/%QT%/submodules/qttranslations-everywhere-src-%QT%.zip" d1f25e0f68a1282feffdd5fe795a027ee5f16ad19e3b1fa2e04a51cea19110ec || goto error 74 call :downloadfile "libwebp-%WEBP%.tar.gz" "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-%WEBP%.tar.gz" 61f873ec69e3be1b99535634340d5bde750b2e4447caa1db9f61be3fd49ab1e5 || goto error 75 call :downloadfile "zlib%ZLIBSHORT%.zip" "https://zlib.net/zlib%ZLIBSHORT%.zip" 72af66d44fcc14c22013b46b814d5d2514673dda3d115e64b690c1ad636e7b17 || goto error 76 call :downloadfile "zstd-%ZSTD%.zip" "https://github.com/facebook/zstd/archive/refs/tags/v%ZSTD%.zip" 3b1c3b46e416d36931efd34663122d7f51b550c87f74de2d38249516fe7d8be5 || goto error 77 call :downloadfile "zstd-fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch" https://github.com/facebook/zstd/commit/fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch 675f144b11f8ab2424b64bed8ccdca5d3f35b9326046fa7a883925dd180f0651 || goto error 78 79 call :downloadfile "cpuinfo-%CPUINFO%.zip" "https://github.com/pytorch/cpuinfo/archive/%CPUINFO%.zip" 13146ae7983d767a678dd01b0d6af591e77cec82babd41264b9164ab808d7d41 || goto error 80 call :downloadfile "discord-rpc-%DISCORD_RPC%.zip" "https://github.com/stenzek/discord-rpc/archive/%DISCORD_RPC%.zip" 61e185e75d37b360c314125bcdf4697192d15e2d5209db3306ed6cd736d508b3 || goto error 81 call :downloadfile "lunasvg-%LUNASVG%.zip" "https://github.com/stenzek/lunasvg/archive/%LUNASVG%.zip" 1425ec2bda0228b73ffdc70b0dc666fc7d2b69c33eec75a35c4421157c0e220c || goto error 82 call :downloadfile "shaderc-%SHADERC%.zip" "https://github.com/stenzek/shaderc/archive/%SHADERC%.zip" d24760f3c20a0ca39dfa85b84b6cf65eee077cd168e7aa08502e60c168ef05f6 || goto error 83 call :downloadfile "soundtouch-%SOUNDTOUCH%.zip" "https://github.com/stenzek/soundtouch/archive/%SOUNDTOUCH%.zip" 107a1941181a69abe28018b9ad26fc0218625758ac193bc979abc9e26b7c0c3a || goto error 84 85 if not exist SPIRV-Cross\ ( 86 git clone https://github.com/KhronosGroup/SPIRV-Cross/ -b %SPIRV_CROSS% --depth 1 || goto error 87 ) 88 89 if %DEBUG%==1 ( 90 echo Building debug and release libraries... 91 ) else ( 92 echo Building release libraries... 93 ) 94 95 set FORCEPDB=-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="/DEBUG" 96 set ARM64TOOLCHAIN=-DCMAKE_TOOLCHAIN_FILE="%SCRIPTDIR%\cmake-toolchain-windows-arm64.cmake" 97 98 echo Building Zlib... 99 rmdir /S /Q "zlib-%ZLIB%" 100 %SEVENZIP% x "zlib%ZLIBSHORT%.zip" || goto error 101 cd "zlib-%ZLIB%" || goto error 102 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DZLIB_BUILD_EXAMPLES=OFF -B build -G Ninja || goto error 103 cmake --build build --parallel || goto error 104 ninja -C build install || goto error 105 cd .. || goto error 106 107 echo Building libpng... 108 rmdir /S /Q "lpng%LIBPNG%" 109 %SEVENZIP% x "lpng%LIBPNG%.zip" || goto error 110 cd "lpng%LIBPNG%" || goto error 111 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DBUILD_SHARED_LIBS=ON -DPNG_TESTS=OFF -DPNG_STATIC=OFF -DPNG_SHARED=ON -DPNG_TOOLS=OFF -B build -G Ninja || goto error 112 cmake --build build --parallel || goto error 113 ninja -C build install || goto error 114 cd .. || goto error 115 116 echo Building libjpeg... 117 rmdir /S /Q "libjpeg-turbo-%LIBJPEGTURBO%" 118 tar -xf "libjpeg-turbo-%LIBJPEGTURBO%.tar.gz" || goto error 119 cd "libjpeg-turbo-%LIBJPEGTURBO%" || goto error 120 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DENABLE_STATIC=OFF -DENABLE_SHARED=ON -B build -G Ninja || goto error 121 cmake --build build --parallel || goto error 122 ninja -C build install || goto error 123 cd .. || goto error 124 125 echo Building FreeType without HarfBuzz... 126 rmdir /S /Q "freetype-%FREETYPE%" 127 tar -xf "freetype-%FREETYPE%.tar.gz" || goto error 128 cd "freetype-%FREETYPE%" || goto error 129 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_DISABLE_HARFBUZZ=TRUE -B build -G Ninja || goto error 130 cmake --build build --parallel || goto error 131 ninja -C build install || goto error 132 cd .. || goto error 133 134 echo Building HarfBuzz... 135 rmdir /S /Q "harfbuzz-%HARFBUZZ%" 136 %SEVENZIP% x "-x^!harfbuzz-%HARFBUZZ%\README" "harfbuzz-%HARFBUZZ%.zip" || goto error 137 cd "harfbuzz-%HARFBUZZ%" || goto error 138 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DHB_BUILD_UTILS=OFF -B build -G Ninja || goto error 139 cmake --build build --parallel || goto error 140 ninja -C build install || goto error 141 cd .. || goto error 142 143 echo Building FreeType with HarfBuzz... 144 rmdir /S /Q "freetype-%FREETYPE%" 145 tar -xf "freetype-%FREETYPE%.tar.gz" || goto error 146 cd "freetype-%FREETYPE%" || goto error 147 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DFT_REQUIRE_ZLIB=TRUE -DFT_REQUIRE_PNG=TRUE -DFT_DISABLE_BZIP2=TRUE -DFT_DISABLE_BROTLI=TRUE -DFT_REQUIRE_HARFBUZZ=TRUE -B build -G Ninja || goto error 148 cmake --build build --parallel || goto error 149 ninja -C build install || goto error 150 cd .. || goto error 151 152 echo Building Zstandard... 153 rmdir /S /Q "zstd-%ZSTD%" 154 %SEVENZIP% x "-x^!zstd-1.5.6\tests\cli-tests\bin" "zstd-%ZSTD%.zip" || goto error 155 cd "zstd-%ZSTD%" 156 %PATCH% -p1 < "..\zstd-fd5f8106a58601a963ee816e6a57aa7c61fafc53.patch" || goto error 157 cmake %ARM64TOOLCHAIN% -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 158 cmake --build build --parallel || goto error 159 ninja -C build install || goto error 160 cd .. || goto error 161 162 echo Building WebP... 163 rmdir /S /Q "libwebp-%WEBP%" 164 tar -xf "libwebp-%WEBP%.tar.gz" || goto error 165 cd "libwebp-%WEBP%" || goto error 166 cmake -B build %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DWEBP_BUILD_ANIM_UTILS=OFF -DWEBP_BUILD_CWEBP=OFF -DWEBP_BUILD_DWEBP=OFF -DWEBP_BUILD_GIF2WEBP=OFF -DWEBP_BUILD_IMG2WEBP=OFF -DWEBP_BUILD_VWEBP=OFF -DWEBP_BUILD_WEBPINFO=OFF -DWEBP_BUILD_WEBPMUX=OFF -DWEBP_BUILD_EXTRAS=OFF -DBUILD_SHARED_LIBS=ON -G Ninja || goto error 167 cmake --build build --parallel || goto error 168 ninja -C build install || goto error 169 cd .. || goto error 170 171 echo Building SDL2... 172 rmdir /S /Q "SDL2-%SDL2%" 173 %SEVENZIP% x "SDL2-%SDL2%.zip" || goto error 174 cd "SDL2-%SDL2%" || goto error 175 cmake -B build %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release %FORCEPDB% -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DSDL_SHARED=ON -DSDL_STATIC=OFF -G Ninja || goto error 176 cmake --build build --parallel || goto error 177 ninja -C build install || goto error 178 copy build\SDL2.pdb "%INSTALLDIR%\bin" || goto error 179 cd .. || goto error 180 181 if %DEBUG%==1 ( 182 set QTBUILDSPEC=-DCMAKE_CONFIGURATION_TYPES="Release;Debug" -G "Ninja Multi-Config" 183 ) else ( 184 set QTBUILDSPEC=-DCMAKE_BUILD_TYPE=Release -G Ninja 185 ) 186 187 echo Building Qt base... 188 rmdir /S /Q "qtbase-everywhere-src-%QT%" 189 %SEVENZIP% x "qtbase-everywhere-src-%QT%.zip" || goto error 190 cd "qtbase-everywhere-src-%QT%" || goto error 191 192 rem Disable the PCRE2 JIT, it doesn't properly verify AVX2 support. 193 %PATCH% -p1 < "%SCRIPTDIR%\qtbase-disable-pcre2-jit.patch" || goto error 194 195 cmake -B build %ARM64TOOLCHAIN% -DFEATURE_sql=OFF -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DQT_HOST_PATH="%X64INSTALLDIR%" %FORCEPDB% -DINPUT_gui=yes -DINPUT_widgets=yes -DINPUT_ssl=yes -DINPUT_openssl=no -DINPUT_schannel=yes -DFEATURE_system_png=ON -DFEATURE_system_jpeg=ON -DFEATURE_system_zlib=ON -DFEATURE_system_freetype=ON -DFEATURE_system_harfbuzz=ON %QTBUILDSPEC% || goto error 196 cmake --build build --parallel || goto error 197 ninja -C build install || goto error 198 cd .. || goto error 199 200 echo Building Qt SVG... 201 rmdir /S /Q "qtsvg-everywhere-src-%QT%" 202 %SEVENZIP% x "qtsvg-everywhere-src-%QT%.zip" || goto error 203 cd "qtsvg-everywhere-src-%QT%" || goto error 204 mkdir build || goto error 205 cd build || goto error 206 call "%INSTALLDIR%\bin\qt-configure-module.bat" .. -- %FORCEPDB% -DCMAKE_PREFIX_PATH="%INSTALLDIR%" || goto error 207 cmake --build . --parallel || goto error 208 ninja install || goto error 209 cd ..\.. || goto error 210 211 echo Building Qt Image Formats... 212 rmdir /S /Q "qtimageformats-everywhere-src-%QT%" 213 %SEVENZIP% x "qtimageformats-everywhere-src-%QT%.zip" || goto error 214 cd "qtimageformats-everywhere-src-%QT%" || goto error 215 mkdir build || goto error 216 cd build || goto error 217 call "%INSTALLDIR%\bin\qt-configure-module.bat" .. -- %FORCEPDB% -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DFEATURE_system_webp=ON || goto error 218 cmake --build . --parallel || goto error 219 ninja install || goto error 220 cd ..\.. || goto error 221 222 echo Building Qt Tools... 223 rmdir /S /Q "qtimageformats-everywhere-src-%QT%" 224 %SEVENZIP% x "qttools-everywhere-src-%QT%.zip" || goto error 225 cd "qttools-everywhere-src-%QT%" || goto error 226 mkdir build || goto error 227 cd build || goto error 228 call "%INSTALLDIR%\bin\qt-configure-module.bat" .. -- %FORCEPDB% -DFEATURE_assistant=OFF -DFEATURE_clang=OFF -DFEATURE_designer=OFF -DFEATURE_kmap2qmap=OFF -DFEATURE_pixeltool=OFF -DFEATURE_pkg_config=OFF -DFEATURE_qev=OFF -DFEATURE_qtattributionsscanner=OFF -DFEATURE_qtdiag=OFF -DFEATURE_qtplugininfo=OFF || goto error 229 cmake --build . --parallel || goto error 230 ninja install || goto error 231 cd ..\.. || goto error 232 233 echo Building Qt Translations... 234 rmdir /S /Q "qttranslations-everywhere-src-%QT%" 235 %SEVENZIP% x "qttranslations-everywhere-src-%QT%.zip" || goto error 236 cd "qttranslations-everywhere-src-%QT%" || goto error 237 mkdir build || goto error 238 cd build || goto error 239 call "%INSTALLDIR%\bin\qt-configure-module.bat" .. -- %FORCEPDB% || goto error 240 cmake --build . --parallel || goto error 241 ninja install || goto error 242 cd ..\.. || goto error 243 244 echo Building shaderc... 245 rmdir /S /Q "shaderc-%SHADERC%" 246 %SEVENZIP% x "shaderc-%SHADERC%.zip" || goto error 247 cd "shaderc-%SHADERC%" || goto error 248 cmake %ARM64TOOLCHAIN% -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 -DSHADERC_ENABLE_SHARED_CRT=ON -B build -G Ninja || goto error 249 cmake --build build --parallel || goto error 250 ninja -C build install || goto error 251 cd .. || goto error 252 253 echo Building SPIRV-Cross... 254 cd SPIRV-Cross || goto error 255 rmdir /S /Q "build" 256 cmake %ARM64TOOLCHAIN% -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=ON -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 257 cmake --build build --parallel || goto error 258 ninja -C build install || goto error 259 cd .. || goto error 260 261 echo Building cpuinfo... 262 rmdir /S /Q "cpuinfo-%CPUINFO%" 263 %SEVENZIP% x "cpuinfo-%CPUINFO%.zip" || goto error 264 cd "cpuinfo-%CPUINFO%" || goto error 265 cmake %ARM64TOOLCHAIN% -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 266 cmake --build build --parallel || goto error 267 ninja -C build install || goto error 268 cd .. || goto error 269 270 echo Building discord-rpc... 271 rmdir /S /Q "discord-rpc-%DISCORD_RPC%" 272 %SEVENZIP% x "discord-rpc-%DISCORD_RPC%.zip" || goto error 273 cd "discord-rpc-%DISCORD_RPC%" || goto error 274 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -B build -G Ninja 275 cmake --build build --parallel || goto error 276 ninja -C build install || goto error 277 cd .. || goto error 278 279 echo Building lunasvg... 280 rmdir /S /Q "lunasvg-%LUNASVG%" 281 %SEVENZIP% x "lunasvg-%LUNASVG%.zip" || goto error 282 cd "lunasvg-%LUNASVG%" || goto error 283 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DBUILD_SHARED_LIBS=ON -DLUNASVG_BUILD_EXAMPLES=OFF -B build -G Ninja 284 cmake --build build --parallel || goto error 285 ninja -C build install || goto error 286 cd .. || goto error 287 288 rem This currently isn't using clang-cl. It probably should, might be losing a little speed. 289 echo Building soundtouch... 290 rmdir /S /Q "soundtouch-%SOUNDTOUCH%" 291 %SEVENZIP% x "soundtouch-%SOUNDTOUCH%.zip" || goto error 292 cd "soundtouch-%SOUNDTOUCH%" || goto error 293 cmake %ARM64TOOLCHAIN% -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="%INSTALLDIR%" -DCMAKE_INSTALL_PREFIX="%INSTALLDIR%" -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON -B build -G Ninja || goto error 294 cmake --build build --parallel || goto error 295 ninja -C build install || goto error 296 cd .. || goto error 297 298 echo Cleaning up... 299 cd .. 300 rd /S /Q deps-build 301 302 echo Exiting with success. 303 exit 0 304 305 :error 306 echo Failed with error #%errorlevel%. 307 pause 308 exit %errorlevel% 309 310 :downloadfile 311 if not exist "%~1" ( 312 echo Downloading %~1 from %~2... 313 curl -L -o "%~1" "%~2" || goto error 314 ) 315 316 rem based on https://gist.github.com/gsscoder/e22daefaff9b5d8ac16afb070f1a7971 317 set idx=0 318 for /f %%F in ('certutil -hashfile "%~1" SHA256') do ( 319 set "out!idx!=%%F" 320 set /a idx += 1 321 ) 322 set filechecksum=%out1% 323 324 if /i %~3==%filechecksum% ( 325 echo Validated %~1. 326 exit /B 0 327 ) else ( 328 echo Expected %~3 got %filechecksum%. 329 exit /B 1 330 )