@echo off rem One-click Windows release build for skate3recomp-multiplayer. rem rem Fixes the known Windows build issues documented in /mnt/archive/Issues.txt rem (and mirrored in docs/releases.md): rem 1. stable Windows SDK so kernel32.lib resolves (vcvarsall with an SDK rem version instead of the broken default), rem 2. Git Bash %LIB% mangling (MSYS2_ARG_CONV_EXCL=*), rem 3. missing rexglue submodules (git submodule update --init + self-heal). rem rem Usage (from a normal cmd.exe / PowerShell prompt): rem tools\release\windows-build.cmd [--tag vX.Y.Z] [--upload] rem rem Config via environment variables: rem VCVARSALL path to vcvarsall.bat (default: VS 18 Community x64) rem WINSDK Windows SDK version (default 10.0.26100.0; try 10.0.22621.0 rem if yours is different) rem GITBASH path to Git for Windows bash.exe setlocal if "%VCVARSALL%"=="" set "VCVARSALL=%ProgramFiles%\Microsoft Visual Studio\18\Community\VC\Auxiliary\Build\vcvarsall.bat" if "%WINSDK%"=="" set "WINSDK=10.0.26100.0" if "%GITBASH%"=="" set "GITBASH=%ProgramFiles%\Git\bin\bash.exe" if not exist "%VCVARSALL%" ( echo [ERROR] vcvarsall.bat not found: %VCVARSALL% echo Set VCVARSALL to your Visual Studio install, e.g. echo "%%ProgramFiles%%\Microsoft Visual Studio\17\Community\VC\Auxiliary\Build\vcvarsall.bat" exit /b 1 ) if not exist "%GITBASH%" ( echo [ERROR] Git Bash not found: %GITBASH% echo Install Git for Windows or set GITBASH. exit /b 1 ) echo [1/3] Loading MSVC environment (x64, SDK %WINSDK%) call "%VCVARSALL%" x64 %WINSDK% if errorlevel 1 ( echo [ERROR] vcvarsall failed. Try a different WINSDK, e.g. echo set WINSDK=10.0.22621.0 exit /b 1 ) rem Prevent Git Bash from converting/corrupting the MSVC environment. rem MSYS2_ARG_CONV_EXCL protects command-line ARGUMENTS; the actual rem kernel32.lib LNK1104 is caused by MSYS rewriting the %LIB% ENVIRONMENT rem variable (backslashes + semicolons), which requires MSYS2_ENV_CONV_EXCL. set "MSYS2_ARG_CONV_EXCL=*" set "MSYS2_ENV_CONV_EXCL=*" if "%LIB%"=="" ( echo [WARN] LIB is empty after vcvarsall - try a different WINSDK echo e.g. set WINSDK=10.0.22621.0 ) echo LIB=%LIB% rem Convert the repo path to forward slashes for Git Bash (%~dp0 is rem tools\release\ with a trailing backslash; ..\.. reaches the repo root). set "REPO=%~dp0..\.." set "REPO=%REPO:\=/%" echo [2/3] Initializing submodules (rexglue SDK + nested) "%GITBASH%" --login -c "cd '%REPO%' && git submodule update --init --jobs 4 && bash tools/ci/init-submodules.sh" if errorlevel 1 ( echo [ERROR] submodule init failed. exit /b 1 ) echo [3/3] Building release "%GITBASH%" --login -c "cd '%REPO%' && bash tools/release/release.sh %*" exit /b %errorlevel% endlocal