diff options
| author | ladevieq <ladevie.quentin@gmail.com> | 2025-10-02 22:37:17 +0200 |
|---|---|---|
| committer | ladevieq <ladevie.quentin@gmail.com> | 2025-10-02 22:37:17 +0200 |
| commit | 4f28508784f06c08de31813aaee34128e8d12d31 (patch) | |
| tree | 361c7fde7caa607a43b259394152ec78429200a8 /build.bat | |
| parent | bd2f069659f6ada5baa068ce984fa8ca36116780 (diff) | |
Add a path to compile with clang
Diffstat (limited to 'build.bat')
| -rw-r--r-- | build.bat | 48 |
1 files changed, 27 insertions, 21 deletions
@@ -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 |
