Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- setlocal EnableDelayedExpansion
- REM call "c:/program files (x86)/microsoft visual studio 14.0/vc/vcvarsall.bat" x64
- REM set BuildMessage=[%1 build]
- REM echo %BuildMessage:[ =[%
- set StartTime=%time%
- if "%1"=="dbg" set BuildDBG=1
- if "%1"=="run" set BuildRUN=1
- if "%1"=="alt" set BuildALT=1
- set OutputDir="bin/"
- if defined BuildDBG set OutputDir="dbg/"
- if not exist %OutputDir% (
- mkdir %OutputDir%
- )
- set CompilerFlags=-nologo -I"ext/incl/" -I"src/" -Fo%OutputDir% -Fe%OutputDir% -Fd%OutputDir%
- if defined BuildDBG (
- set CompilerFlags=%CompilerFlags% -Zi -D"ENGINE_DEBUG=1"
- )
- set Libraries=user32.lib gdi32.lib comdlg32.lib
- set LinkerFlags=-libpath:"ext/lib/" %Libraries%
- if defined BuildRUN (
- start /b "" "%OutputDir:"=%Platform.exe" && exit
- REM cl %CompilerFlags% -Tc"src/frosty/frosty.h" -link %LinkerFlags% -out:"%OutputDir:"=%FTest.exe"
- REM start /b "" "%OutputDir:"=%FTest.exe" && exit
- )
- if defined BuildDBG (
- cl %CompilerFlags% -Tc"src/Platform/Win32Platform.c" -link %LinkerFlags% -out:"%OutputDir:"=%Platform.exe"
- REM cl %CompilerFlags% -Tc"src/AssetBuilder.c" -link %LinkerFlags% -out:"%OutputDir:"=%AssetBuilder.exe"
- )
- if defined BuildALT (
- cl %CompilerFlags% -Tc"src/Platform/Win32Platform.c" -link %LinkerFlags% -out:"%OutputDir:"=%Platform.exe"
- REM link /dll /nologo "%OutputDir:"=%Win32Platform.obj" %LinkerFlags% /out:"%OutputDir:"=%Platform.dll"
- REM cl %CompilerFlags% -Tc"src/AssetBuilder.c" -link %LinkerFlags% "%OutputDir:"=%Platform.lib" -out:"%OutputDir:"=%AssetBuilder.exe"
- REM call:BuildLibDynamic kiyo : %CompilerFlags% /D"KIYO_EXPORT" : "src/Kiyo/KiyoAssert.c" "src/Kiyo/KiyoString.c" "src/Kiyo/KiyoMath.c"
- ) else (
- if not defined BuildDBG (
- cl %CompilerFlags% -Tc"src/TestGame/Game.c" -LD -link %LinkerFlags% "%OutputDir:"=%Platform.lib" -out:"%OutputDir:"=%GameLogic.dll"
- )
- )
- call:GetTimeSince %StartTime% BuildTime
- echo Build finished in %BuildTime%
- del "bin\*.obj" "bin\*.exp" "bin\Game.lib" > nul 2>&1
- xcopy /tyi "res" %OutputDir%"." > nul 2>&1
- xcopy /eyi "res" %OutputDir%"." > nul 2>&1
- goto:eof
- :BuildLibStatic <LibraryName> <CompilerFlags> <SourceFiles>
- set LibName=%~1
- for /f "tokens=1,2* delims=:" %%a in ("%*") do (
- set CompilerFlags=%%b
- set SourceFiles=%%c
- )
- for %%i in (%SourceFiles%) do (
- set ObjFiles=!ObjFiles! "%OutputDir:"=%%%~ni.obj"
- )
- cl %CompilerFlags% /c %SourceFiles%
- link /lib /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.lib"
- if errorlevel 1 ( echo Static library build failed for "%LibName%" )
- goto:eof
- :BuildLibDynamic <LibraryName> <CompilerFlags> <SourceFiles>
- set LibName=%~1
- for /f "tokens=1,2* delims=:" %%a in ("%*") do (
- set CompilerFlags=%%b
- set SourceFiles=%%c
- )
- for %%i in (%SourceFiles%) do (
- set ObjFiles=!ObjFiles! "%OutputDir:"=%%%~ni.obj"
- )
- cl %CompilerFlags% /c %SourceFiles%
- link /lib /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.lib"
- link /dll /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.dll"
- if errorlevel 1 ( echo Dynamic library build failed for "%LibName%" )
- goto:eof
- :GetTimeSince <StartTime> [Result]
- REM Beautifully useless around 12am; probably don't need to delay expand all that much :)
- set StartTime=%~1
- set EndTime=%time: =%
- set "End=!EndTime:%time:~8,1%=%%100)*100+1!" & set "Start=!StartTime:%time:~8,1%=%%100)*100+1!"
- set /A "Elapsed=((((10!End:%time:~2,1%=%%100)*60+1!%%100)-((((10!Start:%time:~2,1%=%%100)*60+1!%%100)"
- set /A "CC=Elapsed,SS=0,MM=0,HH=0"
- set Result=!CC!ms
- if !CC! gtr 99 (
- set /A "SS=Elapsed/100,CC%%=100"
- set Result=!SS!s !CC!ms
- )
- if !SS! gtr 59 (
- set /A "MM=Elapsed/6000,SS%%=60"
- set Result=!MM!min !SS!s !CC!ms
- )
- if !MM! gtr 59 (
- set /A "HH=Elapsed/360000,MM=MM%%60"
- set Result=!HH!h !MM!min !SS!s !CC!ms
- )
- set "%~2=%Result%"
- goto:eof
Add Comment
Please, Sign In to add comment