aboutsummaryrefslogtreecommitdiffstats
path: root/build.bat
diff options
context:
space:
mode:
authorladevieq <ladevie.quentin@gmail.com>2026-05-21 23:23:59 +0200
committerladevieq <ladevie.quentin@gmail.com>2026-05-21 23:23:59 +0200
commitab1af9de1931e6b210386ab88930942ee42d5876 (patch)
treeea736e339bbe8dc38c80cd13caa394cf4cf3ad33 /build.bat
parentdde4bdb8cf94cab1e71eb18a315063371fe1f412 (diff)
Save workHEADmaster
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat58
1 files changed, 33 insertions, 25 deletions
diff --git a/build.bat b/build.bat
index 2ba1dd3..99d64ad 100644
--- a/build.bat
+++ b/build.bat
@@ -11,42 +11,50 @@ IF EXIST %BUILD_DIR% rmdir %BUILD_DIR%\ /S /Q
mkdir build
-set COMPILER_MSVC=0
+set COMPILER_MSVC=1
set COMPILER_CLANG=1
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
+set MSVC_C_FLAGS=/nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:clatest /c /Tc
+set CLANG_C_FLAGS=-fno-builtin -nostdlib -mno-stack-arg-probe -std=c23 -c -Wall -Wextra -Werror -Wno-pre-c23-compat -Wno-reserved-identifier -Wno-declaration-after-statement -ferror-limit=0
+:: -Weverything
+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=-g -O0 %C_FLAGS%
- set L_FLAGS=/DEBUG %L_FLAGS%
- )
- )
+if %release%==0 (
+ set MSVC_C_FLAGS=/Od %MSVC_C_FLAGS%
+ set CLANG_C_FLAGS=-g -O0 %CLANG_C_FLAGS%
+ set L_FLAGS=/DEBUG %L_FLAGS%
)
:compilation
:: DBG
:: Compile
-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
+if %COMPILER_MSVC% EQU 1 (
+ echo cl.exe /Fd:%BUILD_DIR%\main.pdb %MSVC_C_FLAGS% src\main.c
+ cl.exe /Fd:%BUILD_DIR%\main.pdb %MSVC_C_FLAGS% src\main.c
+) else (
+ if %COMPILER_CLANG% EQU 1 (
+ REM clang-cl -fno-builtin /Fd:%BUILD_DIR%\main.pdb %CLANG_C_FLAGS% src\main.c
+ echo clang %CLANG_C_FLAGS% -o %BUILD_DIR%\main.obj src\main.c
+ clang %CLANG_C_FLAGS% -o %BUILD_DIR%\main.obj src\main.c
+ )
+)
:: Link
-lld-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
+if %COMPILER_MSVC% EQU 1 (
+ link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
+) else (
+ if %COMPILER_CLANG% EQU 1 (
+ :: lld-link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib
+ link %L_FLAGS% /OUT:%BUILD_DIR%\main.exe %BUILD_DIR%\main.obj kernel32.lib mscrt.lib
+ )
+)
:: Test program
:: Compile
-:: 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
+set C_FLAGS=/nologo /W4 /WX /Zi /GS- /GR- /Gs1000000000 /Fo:%BUILD_DIR%\ /Iinclude /Isrc /std:clatest /c /Tp
+if %release%==0 (
+ set C_FLAGS=/Od %C_FLAGS%
+)
+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