47 lines
1.3 KiB
Batchfile
47 lines
1.3 KiB
Batchfile
@echo off
|
|
setlocal
|
|
|
|
:: --- 1. Handle Config Choice ---
|
|
:: Default to debug config, but allow override
|
|
set "CONFIG_ARG=%~1"
|
|
if /I "%CONFIG_ARG%"=="" set "CONFIG_ARG=debug"
|
|
if /I "%CONFIG_ARG%"=="clang" set "CONFIG_ARG=debug"
|
|
if /I "%CONFIG_ARG%"=="msvc" set "CONFIG_ARG=debug"
|
|
|
|
set "CONFIG=Debug"
|
|
if /I "%CONFIG_ARG%"=="profile" set "CONFIG=Profile"
|
|
if /I "%CONFIG_ARG%"=="release" set "CONFIG=Release"
|
|
|
|
:: --- 2. Generate Random ID & Setup Paths ---
|
|
set "GAME_BUILD_ID=%RANDOM%"
|
|
set "OUT_DIR=%~dp0..\bin\x64-%CONFIG%"
|
|
|
|
echo --- Building Game (ID: %GAME_BUILD_ID%) [%CONFIG%] ---
|
|
|
|
:: --- 3. Manage Lock File ---
|
|
if not exist "%OUT_DIR%" mkdir "%OUT_DIR%"
|
|
pushd "%OUT_DIR%"
|
|
:: Clean up old DLLs/PDBs in this folder to prevent clutter
|
|
del Game-*.dll Game-*.pdb Game-*.ilk Game-*.exp Game-*.lib > NUL 2> NUL
|
|
echo %GAME_BUILD_ID% > lock.tmp
|
|
popd
|
|
|
|
:: --- 4. Run Build System ---
|
|
:: Pass GAME_BUILD_ID environment variable so build.bat can use it
|
|
set "GAME_BUILD_ID=%GAME_BUILD_ID%"
|
|
call "%~dp0build.bat" %CONFIG_ARG% game
|
|
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
echo.
|
|
echo BUILD FAILED!
|
|
goto :cleanup
|
|
)
|
|
|
|
:: Copy output to Game.dll for the engine to load
|
|
copy /y "%OUT_DIR%\Game-%GAME_BUILD_ID%.dll" "%OUT_DIR%\Game.dll" > NUL
|
|
|
|
echo.
|
|
echo SUCCESS: Generated %OUT_DIR%\Game-%GAME_BUILD_ID%.dll
|
|
|
|
:cleanup
|
|
if exist "%OUT_DIR%\lock.tmp" del "%OUT_DIR%\lock.tmp" |