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