66 lines
2.7 KiB
Batchfile
66 lines
2.7 KiB
Batchfile
@echo OFF
|
|
setlocal EnableDelayedExpansion
|
|
|
|
set script_dir_backslash=%~dp0
|
|
set script_dir=%script_dir_backslash:~0,-1%
|
|
set build_dir=%script_dir%\Build
|
|
|
|
if not exist %build_dir% mkdir %build_dir%
|
|
pushd %build_dir%
|
|
|
|
:: Build CURL if we can and incorporate it into the compile flags
|
|
where /q cmake && (
|
|
if not exist %build_dir%/Curl/Install/lib/libcurl-d.lib (
|
|
cmake -B %build_dir%/Curl ^
|
|
-S %script_dir%/External/curl-8.17.0 ^
|
|
-G Ninja ^
|
|
-D BUILD_SHARED_LIBS=OFF ^
|
|
-D BUILD_STATIC_LIBS=ON ^
|
|
-D BUILD_CURL_EXE=OFF ^
|
|
-D BUILD_LIBCURL_DOCS=OFF ^
|
|
-D BUILD_MISC_DOCS=OFF ^
|
|
-D ENABLE_CURL_MANUAL=OFF ^
|
|
-D CURL_USE_SCHANNEL=ON ^
|
|
-D CURL_USE_LIBPSL=OFF ^
|
|
-D CURL_STATIC_CRT=ON ^
|
|
-D CMAKE_INSTALL_PREFIX=%build_dir%/Curl/Install
|
|
|
|
cmake --build %build_dir%/Curl --parallel --target install
|
|
)
|
|
)
|
|
|
|
:: MT Static CRT
|
|
:: EHa- Disable exception handling
|
|
:: GR- Disable C RTTI
|
|
:: Oi Use CPU Intrinsics
|
|
:: Z7 Combine multi-debug files to one debug file
|
|
set flags=%flags% -D DN_UNIT_TESTS_WITH_KECCAK -D DN_UNIT_TESTS_WITH_NET %script_dir%\Source\Extra\dn_tests_main.cpp
|
|
set msvc_driver_flags=-EHa -GR- -Od -Oi -Z7 -wd4201 -W4 -nologo %flags% -fsanitize=address
|
|
|
|
where /q emcc && (
|
|
echo [BUILD] Emscripten emcc detected, compiling ...
|
|
call emcc -g -msimd128 -msse2 %flags% -o %build_dir%\dn_unit_tests_emcc.js -s FETCH=1 -pthread -s ASYNCIFY=1 -lwebsocket -Wall
|
|
)
|
|
|
|
where /q cl && (
|
|
echo [BUILD] MSVC cl detected, compiling ...
|
|
set msvc_cmd=cl -MTd %msvc_driver_flags% -analyze -Fe:dn_unit_tests_msvc -Fo:dn_unit_tests_msvc
|
|
if exist %build_dir%/Curl/Install/lib/libcurl-d.lib (
|
|
set msvc_cmd=!msvc_cmd! -D DN_UNIT_TESTS_WITH_CURL -I %build_dir%/Curl/Install/include %build_dir%/Curl/Install/lib/libcurl-d.lib crypt32.lib ws2_32.lib advapi32.lib wldap32.lib iphlpapi.lib secur32.lib
|
|
)
|
|
set msvc_cmd=!msvc_cmd! -link
|
|
|
|
powershell -Command "$time = Measure-Command { !msvc_cmd! | Out-Default }; Write-Host '[BUILD] msvc:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1
|
|
call cl %script_dir%\single_header_generator.cpp -Z7 -nologo -link
|
|
call %build_dir%\single_header_generator.exe %script_dir%\Source %script_dir%\Single-Header
|
|
)
|
|
|
|
where /q clang-cl && (
|
|
echo [BUILD] LLVM clang-cl detected, compiling ...
|
|
set clang_cmd=clang-cl -MT %msvc_driver_flags% -fsanitize=undefined -Fe:dn_unit_tests_clang -link
|
|
powershell -Command "$time = Measure-Command { !clang_cmd! | Out-Default }; Write-Host '[BUILD] clang-cl:'$time.TotalSeconds's'; exit $LASTEXITCODE" || exit /b 1
|
|
)
|
|
|
|
exit /b 1
|
|
popd
|