diff --git a/tools/msvs/find_cargo.cmd b/tools/msvs/find_cargo.cmd new file mode 100644 index 000000000000..4ee20de5687a --- /dev/null +++ b/tools/msvs/find_cargo.cmd @@ -0,0 +1,18 @@ +@IF NOT DEFINED DEBUG_HELPER @ECHO OFF +SETLOCAL + +ECHO Looking for cargo + +REM Look in the same places as deps\crates\cargo_build.py. +SET "cargo_cmd=cargo" +IF DEFINED CARGO SET "cargo_cmd=%CARGO%" + +IF EXIST "%cargo_cmd%" EXIT /B 0 + +FOR /F "delims=" %%a IN ('where "%cargo_cmd%" 2^> NUL') DO ( + EXIT /B 0 +) + +IF EXIST "%USERPROFILE%\.cargo\bin\cargo.exe" EXIT /B 0 + +EXIT /B 1 diff --git a/vcbuild.bat b/vcbuild.bat index d1a6d8fb7f30..8b8c393133cf 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -297,6 +297,18 @@ REM NASM is only needed on x86_64. if not defined openssl_no_asm if "%target_arch%" NEQ "arm64" call tools\msvs\find_nasm.cmd if errorlevel 1 echo Could not find NASM, install it or build with openssl-no-asm. See BUILDING.md. +REM cargo is needed to build the Rust crates used for Temporal. +if defined nobuild goto skip-find-cargo +if "%target%"=="Clean" goto skip-find-cargo +echo %configure_flags% | findstr /C:"--v8-disable-temporal-support" /C:"--shared-temporal_capi" >NUL && goto skip-find-cargo +call tools\msvs\find_cargo.cmd +if errorlevel 1 ( + echo Could not find cargo, install the Rust toolchain. See BUILDING.md. + set exit_code=1 + goto exit +) +:skip-find-cargo + call :getnodeversion || exit /b 1 @REM Forcing ClangCL usage for version 24 and above