Guest User

Untitled

a guest
Oct 20th, 2018
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.89 KB | None | 0 0
  1. @echo off
  2. setlocal EnableDelayedExpansion
  3.  
  4. REM call "c:/program files (x86)/microsoft visual studio 14.0/vc/vcvarsall.bat" x64
  5.  
  6. REM set BuildMessage=[%1 build]
  7. REM echo %BuildMessage:[ =[%
  8.  
  9. set StartTime=%time%
  10.  
  11. if "%1"=="dbg" set BuildDBG=1
  12. if "%1"=="run" set BuildRUN=1
  13. if "%1"=="alt" set BuildALT=1
  14.  
  15. set OutputDir="bin/"
  16. if defined BuildDBG set OutputDir="dbg/"
  17.  
  18. if not exist %OutputDir% (
  19. mkdir %OutputDir%
  20. )
  21.  
  22. set CompilerFlags=-nologo -I"ext/incl/" -I"src/" -Fo%OutputDir% -Fe%OutputDir% -Fd%OutputDir%
  23. if defined BuildDBG (
  24. set CompilerFlags=%CompilerFlags% -Zi -D"ENGINE_DEBUG=1"
  25. )
  26.  
  27. set Libraries=user32.lib gdi32.lib comdlg32.lib
  28. set LinkerFlags=-libpath:"ext/lib/" %Libraries%
  29.  
  30. if defined BuildRUN (
  31. start /b "" "%OutputDir:"=%Platform.exe" && exit
  32.  
  33. REM cl %CompilerFlags% -Tc"src/frosty/frosty.h" -link %LinkerFlags% -out:"%OutputDir:"=%FTest.exe"
  34. REM start /b "" "%OutputDir:"=%FTest.exe" && exit
  35. )
  36.  
  37. if defined BuildDBG (
  38. cl %CompilerFlags% -Tc"src/Platform/Win32Platform.c" -link %LinkerFlags% -out:"%OutputDir:"=%Platform.exe"
  39. REM cl %CompilerFlags% -Tc"src/AssetBuilder.c" -link %LinkerFlags% -out:"%OutputDir:"=%AssetBuilder.exe"
  40. )
  41.  
  42. if defined BuildALT (
  43. cl %CompilerFlags% -Tc"src/Platform/Win32Platform.c" -link %LinkerFlags% -out:"%OutputDir:"=%Platform.exe"
  44. REM link /dll /nologo "%OutputDir:"=%Win32Platform.obj" %LinkerFlags% /out:"%OutputDir:"=%Platform.dll"
  45.  
  46. REM cl %CompilerFlags% -Tc"src/AssetBuilder.c" -link %LinkerFlags% "%OutputDir:"=%Platform.lib" -out:"%OutputDir:"=%AssetBuilder.exe"
  47.  
  48. REM call:BuildLibDynamic kiyo : %CompilerFlags% /D"KIYO_EXPORT" : "src/Kiyo/KiyoAssert.c" "src/Kiyo/KiyoString.c" "src/Kiyo/KiyoMath.c"
  49. ) else (
  50. if not defined BuildDBG (
  51. cl %CompilerFlags% -Tc"src/TestGame/Game.c" -LD -link %LinkerFlags% "%OutputDir:"=%Platform.lib" -out:"%OutputDir:"=%GameLogic.dll"
  52. )
  53. )
  54.  
  55. call:GetTimeSince %StartTime% BuildTime
  56. echo Build finished in %BuildTime%
  57.  
  58. del "bin\*.obj" "bin\*.exp" "bin\Game.lib" > nul 2>&1
  59. xcopy /tyi "res" %OutputDir%"." > nul 2>&1
  60. xcopy /eyi "res" %OutputDir%"." > nul 2>&1
  61.  
  62. goto:eof
  63.  
  64. :BuildLibStatic <LibraryName> <CompilerFlags> <SourceFiles>
  65. set LibName=%~1
  66.  
  67. for /f "tokens=1,2* delims=:" %%a in ("%*") do (
  68. set CompilerFlags=%%b
  69. set SourceFiles=%%c
  70. )
  71.  
  72. for %%i in (%SourceFiles%) do (
  73. set ObjFiles=!ObjFiles! "%OutputDir:"=%%%~ni.obj"
  74. )
  75.  
  76. cl %CompilerFlags% /c %SourceFiles%
  77. link /lib /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.lib"
  78.  
  79. if errorlevel 1 ( echo Static library build failed for "%LibName%" )
  80. goto:eof
  81.  
  82. :BuildLibDynamic <LibraryName> <CompilerFlags> <SourceFiles>
  83. set LibName=%~1
  84.  
  85. for /f "tokens=1,2* delims=:" %%a in ("%*") do (
  86. set CompilerFlags=%%b
  87. set SourceFiles=%%c
  88. )
  89.  
  90. for %%i in (%SourceFiles%) do (
  91. set ObjFiles=!ObjFiles! "%OutputDir:"=%%%~ni.obj"
  92. )
  93.  
  94. cl %CompilerFlags% /c %SourceFiles%
  95. link /lib /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.lib"
  96. link /dll /nologo %ObjFiles% /out:"%OutputDir:"=%%LibName:"=%.dll"
  97.  
  98. if errorlevel 1 ( echo Dynamic library build failed for "%LibName%" )
  99. goto:eof
  100.  
  101. :GetTimeSince <StartTime> [Result]
  102. REM Beautifully useless around 12am; probably don't need to delay expand all that much :)
  103.  
  104. set StartTime=%~1
  105. set EndTime=%time: =%
  106.  
  107. set "End=!EndTime:%time:~8,1%=%%100)*100+1!" & set "Start=!StartTime:%time:~8,1%=%%100)*100+1!"
  108. set /A "Elapsed=((((10!End:%time:~2,1%=%%100)*60+1!%%100)-((((10!Start:%time:~2,1%=%%100)*60+1!%%100)"
  109.  
  110. set /A "CC=Elapsed,SS=0,MM=0,HH=0"
  111. set Result=!CC!ms
  112.  
  113. if !CC! gtr 99 (
  114. set /A "SS=Elapsed/100,CC%%=100"
  115. set Result=!SS!s !CC!ms
  116. )
  117.  
  118. if !SS! gtr 59 (
  119. set /A "MM=Elapsed/6000,SS%%=60"
  120. set Result=!MM!min !SS!s !CC!ms
  121. )
  122.  
  123. if !MM! gtr 59 (
  124. set /A "HH=Elapsed/360000,MM=MM%%60"
  125. set Result=!HH!h !MM!min !SS!s !CC!ms
  126. )
  127.  
  128. set "%~2=%Result%"
  129. goto:eof
Add Comment
Please, Sign In to add comment