Initial release
This commit is contained in:
@@ -0,0 +1,100 @@
|
||||
@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 ..
|
||||
Reference in New Issue
Block a user