Files
hot-step-cpp-ROCm/engine/buildall.cmd
T
2026-08-16 18:24:52 +07:00

101 lines
3.5 KiB
Batchfile

@echo off
REM HOT-Step engine build (all backends: CPU variants + CUDA + Vulkan)
REM Uses vswhere to find any Visual Studio edition automatically.
REM Automatically downloads ONNX Runtime GPU SDK for SuperSep support.
REM Skip vcvars if already sourced (prevents PATH overflow on repeated runs)
if defined VSCMD_VER goto :deps
set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
if not exist "%VSWHERE%" (
echo ERROR: vswhere.exe not found. Is Visual Studio or Build Tools installed?
exit /b 1
)
set "VCVARS_TMP=%TEMP%\vcvars_path.txt"
"%VSWHERE%" -latest -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -find "VC\Auxiliary\Build\vcvars64.bat" > "%VCVARS_TMP%" 2>nul
set "VCVARS="
for /f "usebackq tokens=*" %%i in ("%VCVARS_TMP%") do set "VCVARS=%%i"
del "%VCVARS_TMP%" 2>nul
if not defined VCVARS (
echo ERROR: Could not find vcvars64.bat via vswhere.
echo Install the "Desktop development with C++" workload.
exit /b 1
)
echo Using: %VCVARS%
call "%VCVARS%"
:deps
REM ── ONNX Runtime GPU SDK (for SuperSep stem separation) ────────────
REM Auto-downloads from Microsoft's GitHub Releases if not present.
REM Users can skip this by setting ORT_ROOT or ONNXRUNTIME_ROOT env var.
set "ORT_VERSION=1.25.1"
set "ORT_DIR=%~dp0deps\onnxruntime"
set "ORT_MARKER=%ORT_DIR%\include\onnxruntime_cxx_api.h"
if defined ONNXRUNTIME_ROOT (
echo [ORT] Using ONNXRUNTIME_ROOT=%ONNXRUNTIME_ROOT%
goto :build
)
if exist "%ORT_MARKER%" (
echo [ORT] Found at %ORT_DIR%
goto :build
)
echo.
echo ══════════════════════════════════════════════════════════════════
echo ONNX Runtime GPU SDK not found. Downloading v%ORT_VERSION%...
echo This is needed for SuperSep stem separation (one-time download).
echo ══════════════════════════════════════════════════════════════════
echo.
set "ORT_ZIP=%TEMP%\onnxruntime-win-x64-gpu-%ORT_VERSION%.zip"
set "ORT_URL=https://github.com/microsoft/onnxruntime/releases/download/v%ORT_VERSION%/onnxruntime-win-x64-gpu-%ORT_VERSION%.zip"
echo [ORT] Downloading from %ORT_URL%
curl -L -o "%ORT_ZIP%" "%ORT_URL%"
if errorlevel 1 (
echo [ORT] WARNING: Download failed. Building without SuperSep support.
echo [ORT] You can manually download and extract to: %ORT_DIR%
goto :build
)
echo [ORT] Extracting...
mkdir "%~dp0deps" 2>nul
powershell -NoProfile -Command "Expand-Archive -Path '%ORT_ZIP%' -DestinationPath '%~dp0deps' -Force"
if errorlevel 1 (
echo [ORT] WARNING: Extraction failed. Building without SuperSep support.
goto :build
)
REM Rename extracted folder (it has version in the name)
if exist "%~dp0deps\onnxruntime-win-x64-gpu-%ORT_VERSION%" (
ren "%~dp0deps\onnxruntime-win-x64-gpu-%ORT_VERSION%" onnxruntime
)
REM Clean up zip
del "%ORT_ZIP%" 2>nul
if exist "%ORT_MARKER%" (
echo [ORT] Successfully installed to %ORT_DIR%
) else (
echo [ORT] WARNING: Installation may have failed. Check %ORT_DIR%
)
:build
cd /d "%~dp0"
rem rd /s /q build 2>nul
mkdir build 2>nul
cd build
REM Build with ORT auto-detection from deps directory
cmake .. -DGGML_CPU_ALL_VARIANTS=ON -DGGML_CUDA=ON -DGGML_VULKAN=ON -DGGML_BACKEND_DL=ON %RELEASE_CMAKE_EXTRA%
cmake --build . --config Release -j %NUMBER_OF_PROCESSORS%
cd ..