aboutsummaryrefslogtreecommitdiff
path: root/build.bat
diff options
context:
space:
mode:
authorbonmas14 <bonmas14@gmail.com>2025-09-29 19:58:12 +0300
committerbonmas14 <bonmas14@gmail.com>2025-09-29 19:58:12 +0300
commit51ecf18f6ce5b9e06ec61423548270b4746f379d (patch)
treec2c3ffbbb1fd8ef52fa311851a45ed04ff2bb925 /build.bat
parent099519b45594827aad7c85f84816ae9b0cdd4698 (diff)
downloadungrateful-51ecf18f6ce5b9e06ec61423548270b4746f379d.tar.gz
ungrateful-51ecf18f6ce5b9e06ec61423548270b4746f379d.zip
Added zlib
Diffstat (limited to 'build.bat')
-rw-r--r--build.bat70
1 files changed, 49 insertions, 21 deletions
diff --git a/build.bat b/build.bat
index 60f096f..e930ac0 100644
--- a/build.bat
+++ b/build.bat
@@ -20,9 +20,17 @@ set "cflags=/nologo /std:c11 /utf-8 /W4 /WX- /diagnostics:column /TC /Zi /fp:fas
set "link_conf=/INCREMENTAL:NO"
-::
-:: ------------
-::
+if exist %bin_dir% ( rmdir /s /q %bin_dir% )
+if exist %obj_dir% ( rmdir /s /q %obj_dir% )
+if exist %inc_dir% ( rmdir /s /q %inc_dir% )
+if exist %lib_dir% ( rmdir /s /q %lib_dir% )
+if exist %log_dir% ( rmdir /s /q %log_dir% )
+
+if not exist %bin_dir% ( mkdir %bin_dir% )
+if not exist %obj_dir% ( mkdir %obj_dir% )
+if not exist %inc_dir% ( mkdir %inc_dir% )
+if not exist %lib_dir% ( mkdir %lib_dir% )
+if not exist %log_dir% ( mkdir %log_dir% )
if "%1"=="Release" ( goto release )
if "%1"=="release" ( goto release )
@@ -32,48 +40,64 @@ if "%1"=="Sanitize" ( goto sanitize )
if "%1"=="asan" ( goto sanitize )
if "%1"=="san" ( goto sanitize )
+if "%1"=="deps" ( goto deps )
+
goto debug
+:deps
+
+pushd deps
+pushd zlib-1.3.1
+
+if exist "build" ( rmdir /s /q "build" )
+mkdir "build"
+
+:: https://cmake.org/cmake/help/latest/generator/Visual%20Studio%2017%202022.html
+cmake -B build -G "Visual Studio 17 2022" -A x64
+cmake --build build --config Debug --parallel 8
+cmake --build build --config Release --parallel 8
+
+popd
+popd
+
+goto end
+
:sanitize
set "flag=/D DEBUG /MTd /fsanitize=address /Od /Gs /MP"
+set config_name="asan"
goto build
:release
set "flag=/D NDEBUG /MT /Ox /GS- /MP /cgthreads8 /GL"
+set config_name="rel"
goto build
:debug
set "flag=/D DEBUG /MTd /Od /GS /MP"
+set config_name="deb"
goto build
:build
-if exist %bin_dir% ( rmdir /s /q %bin_dir% )
-if exist %obj_dir% ( rmdir /s /q %obj_dir% )
-if exist %inc_dir% ( rmdir /s /q %inc_dir% )
-if exist %lib_dir% ( rmdir /s /q %lib_dir% )
-if exist %log_dir% ( rmdir /s /q %log_dir% )
-
-if not exist %bin_dir% ( mkdir %bin_dir% )
-if not exist %obj_dir% ( mkdir %obj_dir% )
-if not exist %inc_dir% ( mkdir %inc_dir% )
-if not exist %lib_dir% ( mkdir %lib_dir% )
-if not exist %log_dir% ( mkdir %log_dir% )
-
%cc% %cflags% %warn% %flag% /c %src_dir%ungrateful.c /Fo%obj_dir%ungrateful.obj /Fd%obj_dir%ungrateful.pdb %cdefines%
-%cc% %cflags% %warn% %flag% /I %src_dir% /c %src_dir%cynic.c /Fo%obj_dir%cynic.obj /Fd%obj_dir%cynic.pdb %cdefines%
+%cc% %cflags% %warn% %flag% /I deps\zlib-1.3.1 /I deps\zlib-1.3.1\build /I %src_dir% /c %src_dir%cynic.c /Fo%obj_dir%cynic.obj /Fd%obj_dir%cynic.pdb %cdefines%
%cc% %cflags% %warn% %flag% /I %src_dir% /c %src_dir%disgrace.c /Fo%obj_dir%disgrace.obj /Fd%obj_dir%disgrace.pdb %cdefines%
%ar% /nologo /OUT:lib\ungrateful.lib %obj_dir%ungrateful.obj
-%ar% /nologo /OUT:lib\cynic.lib %obj_dir%cynic.obj
%ar% /nologo /OUT:lib\disgrace.lib %obj_dir%disgrace.obj
+if %config_name%=="rel" (
+ %ar% /nologo /OUT:lib\cynic.lib %obj_dir%cynic.obj .\deps\zlib-1.3.1\build\Release\zlib.lib
+ copy ".\deps\zlib-1.3.1\build\Release\zlib.dll" "%bin_dir%zlib.dll" 1>nul
+) else (
+ %ar% /nologo /OUT:lib\cynic.lib %obj_dir%cynic.obj .\deps\zlib-1.3.1\build\Debug\zlibd.lib
+ copy ".\deps\zlib-1.3.1\build\Debug\zlibd.dll" "%bin_dir%zlibd.dll" 1>nul
+)
+
for %%f in ("%src_dir%*.h") do (
copy "%%f" "%inc_dir%%%~nxf" 1>nul
)
-echo:
-
set "link_param=/link %link_conf% %lib_dir%ungrateful.lib"
for %%f in ("tests\un\*.c") do (
start "Compile %%f" /B %cc% %cflags% %warn% %flag% %cdefines% %%f /I%inc_dir% /Fo%obj_dir%%%~nf.obj /Fd%bin_dir%%%~nf.pdb /Fe%bin_dir%%%~nf.exe %link_param% > %log_dir%\log_%%~nxf.txt 2>&1
@@ -105,15 +129,19 @@ for %%f in ("%log_dir%*.txt") do (
echo:
for %%f in ("%bin_dir%*.exe") do (
+ echo [ RUN ] %%f
%%f
if !errorlevel! == 0 (
- echo [DONE] %%f
+ echo [ DONE ]
+ echo:
) else (
- echo [FAIL] %%f
+ echo [ FAIL ]
+ echo:
)
)
+:end
echo:
echo Done!
endlocal