aboutsummaryrefslogtreecommitdiffstats
path: root/build.bat
diff options
context:
space:
mode:
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat48
1 files changed, 27 insertions, 21 deletions
diff --git a/build.bat b/build.bat
index 0739435..2ba1dd3 100644
--- a/build.bat
+++ b/build.bat
@@ -11,36 +11,42 @@ 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"
+set COMPILER_MSVC=0
+set COMPILER_CLANG=1
-if EXIST %VS2022_COM% (
- call %VS2022_COM%
- goto compilation
-)
-if EXIST %VS2022_PRO% (
- call %VS2022_PRO%
- goto compilation
-)
+REM TODO: Handle compiler executable as well
+if %COMPILER_MSVC%==1 (
+ set COMPILER=cl
+ 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
-: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%
+ )
+) else (
+ if %COMPILER_CLANG%==1 (
+ set COMPILER=clang
+ set C_FLAGS=-fno-builtin -nostdlib -mno-stack-arg-probe -std=c23 -c
+ 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%
+ if "%release%"=="0" (
+ set C_FLAGS=-g -O0 %C_FLAGS%
+ set L_FLAGS=/DEBUG %L_FLAGS%
+ )
+ )
)
-
+:compilation
:: DBG
:: Compile
-cl.exe /Fd:%BUILD_DIR%\main.pdb %C_FLAGS% src\main.c
-:: clang-cl.exe /Fd:%BUILD_DIR%\main.pdb %C_FLAGS% src\main.c
+REM cl.exe /Fd:%BUILD_DIR%\main.pdb %C_FLAGS% src\main.c
+REM clang-cl -fno-builtin /Fd:%BUILD_DIR%\main.pdb %C_FLAGS% src\main.c
+start %COMPILER% %C_FLAGS% -o %BUILD_DIR%\main.obj src\main.c /wait /b
:: Link
-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
+lld-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
:: Test program
:: Compile
-cl.exe %C_FLAGS% test\main.c /Fd:%BUILD_DIR%\test.pdb /Fo:%BUILD_DIR%\test.obj
+:: cl.exe %C_FLAGS% test\main.c /Fd:%BUILD_DIR%\test.pdb /Fo:%BUILD_DIR%\test.obj
+clang -fno-builtin -g -O0 -nostdlib -mno-stack-arg-probe -std=c23 -c -o %BUILD_DIR%\test.obj test\main.c