aboutsummaryrefslogtreecommitdiffstats
path: root/build.bat
diff options
context:
space:
mode:
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat50
1 files changed, 50 insertions, 0 deletions
diff --git a/build.bat b/build.bat
new file mode 100644
index 0000000..8b3fc6c
--- /dev/null
+++ b/build.bat
@@ -0,0 +1,50 @@
+@ECHO OFF
+
+:: Unpack Arguments
+set release=0
+for %%a in (%*) do set "%%a=1"
+
+set BUILD_DIR=build
+
+:: Clean directory
+IF EXIST %BUILD_DIR% rmdir %BUILD_DIR%\ /S /Q
+
+mkdir build
+
+set VS2022_COM="C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars64.bat"
+set VS2022_PRO="C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars64.bat"
+
+if EXIST %VS2022_COM% (
+ call %VS2022_COM%
+ goto compilation
+)
+if EXIST %VS2022_PRO% (
+ call %VS2022_PRO%
+ goto compilation
+)
+
+
+:compilation
+set C_FLAGS=/nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:clatest /c /Tc
+set L_FLAGS=/WX /SUBSYSTEM:CONSOLE /NODEFAULTLIB /stack:0x100000,0x100000
+
+if "%release%"=="0" (
+ set C_FLAGS=/Od %C_FLAGS%
+ set L_FLAGS=/DEBUG %L_FLAGS%
+)
+
+
+:: DBG
+:: Compile
+cl /Fd:%BUILD_DIR%\main.pdb %C_FLAGS% src\main.c
+
+:: Link
+link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
+
+:: Test program
+REM set SRC_FILE=test
+:: Compile
+REM cl /Fd:%BUILD_DIR%\%SRC_FILE%.pdb %C_FLAGS% src/%SRC_FILE%.c
+
+:: Link
+REM link %L_FLAGS% %BUILD_DIR%\%SRC_FILE%.obj /OUT:%BUILD_DIR%\%SRC_FILE%.exe kernel32.lib