Files
Juliet/misc/build_game.bat
T

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"