update all build scripts:

+ use new sdk folder

+ build proto files in build/tmp folder

+ update global includes to recognize the new structure

+ copy post build stuff

+ Linux: count protoc error

+ Windows: use nested dir for each build
This commit is contained in:
otavepto 2023-12-27 17:07:29 +02:00
parent 3c88f2adde
commit 475cbe5da4
2 changed files with 157 additions and 57 deletions

View File

@ -5,7 +5,7 @@ required_files=(
"dll/dll.cpp"
"dll/steam_client.cpp"
"controller/gamepad.c"
"sdk_includes/isteamclient.h"
"sdk/steam/isteamclient.h"
)
for emu_file in "${required_files[@]}"; do
@ -113,6 +113,7 @@ deps_dir="build/deps/linux"
libs_dir="libs"
tools_dir='tools'
build_temp_dir="build/tmp/linux"
protoc_out_dir="$build_temp_dir/proto_gen"
third_party_dir="third-party"
third_party_build_dir="$third_party_dir/build/linux"
@ -152,9 +153,13 @@ mbedtls_lib64="$deps_dir/mbedtls/install64/lib"
# directories to use for #include
release_incs_both=(
"$ssq_inc"
"$libs_dir/utfcpp"
"."
"$libs_dir"
"$protoc_out_dir"
"$libs_dir/utfcpp"
"controller"
"dll"
"sdk"
"overlay_experimental"
)
release_incs32=(
"${release_incs_both[@]}"
@ -204,7 +209,7 @@ release_libs=(
# common source files used everywhere, just for convinience, you still have to provide a complete list later
release_src=(
"dll/*.cpp"
"dll/*.cc"
"$protoc_out_dir/*.cc"
)
# additional #defines
@ -267,7 +272,7 @@ function build_for () {
local linker_pic_pie='-shared'
[[ $is_exe = 1 ]] && linker_pic_pie='-pie'
local tmp_work_dir="${out_filepath##*/}"
local tmp_work_dir="${out_filepath##*/}_$is_32_build"
tmp_work_dir="$build_temp_dir/${tmp_work_dir%.*}"
echo " -- Cleaning compilation directory '$tmp_work_dir/'"
rm -f -r "$tmp_work_dir"
@ -354,6 +359,7 @@ function cleanup () {
rm -f dll/net.pb.cc
rm -f dll/net.pb.h
rm -f -r "$build_temp_dir"
rm -f -r "$protoc_out_dir"
}
if [[ "$CLEAN_BUILD" = "1" ]]; then
@ -373,9 +379,11 @@ fi
### x32 build
cleanup
mkdir -p "$protoc_out_dir"
echo // invoking protobuf compiler - 32
"$protoc_exe_32" -I./dll/ --cpp_out=./dll/ ./dll/*.proto
"$protoc_exe_32" ./dll/*.proto -I./dll/ --cpp_out="$protoc_out_dir/"
last_code=$((last_code + $?))
echo; echo;
if [[ "$BUILD_LIB32" = "1" ]]; then
@ -428,9 +436,11 @@ fi
### x64 build
cleanup
mkdir -p "$protoc_out_dir"
echo // invoking protobuf compiler - 64
"$protoc_exe_64" -I./dll/ --cpp_out=./dll/ ./dll/*.proto
"$protoc_exe_64" ./dll/*.proto -I./dll/ --cpp_out="$protoc_out_dir/"
last_code=$((last_code + $?))
echo; echo;
if [[ "$BUILD_LIB64" = "1" ]]; then
@ -484,6 +494,28 @@ fi
# cleanup
cleanup
# copy configs + examples
if [[ $last_code = 0 ]]; then
echo "// copying readmes + files examples"
cp -f -r "post_build/steam_settings.EXAMPLE/" "$build_root_dir/"
cp -f "post_build/README.release.md" "$build_root_dir/"
cp -f "CHANGELOG.md" "$build_root_dir/"
if [[ $BUILD_TYPE = 1 ]]; then
cp -f "post_build/README.debug.md" "$build_root_dir/"
fi
if [[ -d "$build_root_tools/find_interfaces" ]]; then
cp -f "post_build/README.find_interfaces.md" "$build_root_tools/find_interfaces/"
fi
if [[ -d "$build_root_tools/lobby_connect" ]]; then
cp -f "post_build/README.lobby_connect.md" "$build_root_tools/lobby_connect/"
fi
else
echo "[X] Not copying readmes or files examples due to previous errors" >&2
fi
echo; echo;
echo;
if [[ $last_code = 0 ]]; then
echo "[GG] no failures"

View File

@ -6,10 +6,10 @@ pushd "%~dp0"
set /a last_code=0
for %%A in (
"dll/dll.cpp"
"dll/steam_client.cpp"
"controller/gamepad.c"
"sdk_includes/isteamclient.h" ) do (
"dll\dll.cpp"
"dll\steam_client.cpp"
"controller\gamepad.c"
"sdk\steam\isteamclient.h" ) do (
if not exist "%%~A" (
call :err_msg "Invalid emu directory, change directory to emu's src dir (missing file %%~A)"
set /a last_code=1
@ -138,11 +138,12 @@ set "deps_dir=build\deps\win"
set "libs_dir=libs"
set "tools_src_dir=tools"
set "build_temp_dir=build\tmp\win"
set "protoc_out_dir=%build_temp_dir%\proto_gen"
set "protoc_exe_32=%deps_dir%\protobuf\install32\bin\protoc.exe"
set "protoc_exe_64=%deps_dir%\protobuf\install64\bin\protoc.exe"
set "common_compiler_args=/std:c++17 /MP%build_threads% /DYNAMICBASE /errorReport:none /nologo /utf-8 /EHsc /GF /GL- /GS /Fo%build_temp_dir%\ /Fe%build_temp_dir%\"
set "common_compiler_args=/std:c++17 /MP%build_threads% /DYNAMICBASE /errorReport:none /nologo /utf-8 /EHsc /GF /GL- /GS
set "common_compiler_args_32=%common_compiler_args%"
set "common_compiler_args_64=%common_compiler_args%"
@ -180,7 +181,7 @@ set mbedtls_lib32="%deps_dir%\mbedtls\install32\lib\mbedcrypto.lib"
set mbedtls_lib64="%deps_dir%\mbedtls\install64\lib\mbedcrypto.lib"
:: directories to use for #include
set release_incs_both=%ssq_inc% /I"%libs_dir%\utfcpp" /I"." /I"%libs_dir%" /I"%libs_dir%\ImGui"
set release_incs_both=%ssq_inc% /I"%libs_dir%" /I"%protoc_out_dir%" /I"%libs_dir%\utfcpp" /I"controller" /I"dll" /I"sdk" /I"overlay_experimental" /I"%libs_dir%\ImGui"
set release_incs32=%release_incs_both% %curl_inc32% %protob_inc32% %zlib_inc32% %mbedtls_inc32%
set release_incs64=%release_incs_both% %curl_inc64% %protob_inc64% %zlib_inc64% %mbedtls_inc64%
@ -192,7 +193,7 @@ set release_libs32=%release_libs_both% %ssq_lib32% %curl_lib32% %protob_lib32% %
set release_libs64=%release_libs_both% %ssq_lib64% %curl_lib64% %protob_lib64% %zlib_lib64% %mbedtls_lib64%
:: common source files used everywhere, just for convinience, you still have to provide a complete list later
set release_src="dll/*.cpp" "dll/*.cc"
set release_src="dll/*.cpp" "%protoc_out_dir%/*.cc"
:: additional #defines
set "common_defs=/DUTF_CPP_CPLUSPLUS=201703L /DCURL_STATICLIB /D_MT /DUNICODE /D_UNICODE"
@ -232,7 +233,7 @@ setlocal
echo // cleaning up to build 32
call :cleanup
mkdir "%build_temp_dir%"
mkdir "%protoc_out_dir%"
call build_win_set_env.bat 32 || (
endlocal
@ -242,7 +243,7 @@ call build_win_set_env.bat 32 || (
)
echo // invoking protobuf compiler - 32
"%protoc_exe_32%" -I.\dll\ --cpp_out=.\dll\ .\dll\net.proto || (
"%protoc_exe_32%" .\dll\net.proto -I.\dll\ --cpp_out="%protoc_out_dir%\\" || (
set /a last_code+=1
)
echo: & echo:
@ -330,7 +331,7 @@ setlocal
echo // cleaning up to build 64
call :cleanup
mkdir "%build_temp_dir%"
mkdir "%protoc_out_dir%"
call build_win_set_env.bat 64 || (
endlocal
@ -340,7 +341,7 @@ call build_win_set_env.bat 64 || (
)
echo // invoking protobuf compiler - 64
"%protoc_exe_64%" -I.\dll\ --cpp_out=.\dll\ .\dll\net.proto || (
"%protoc_exe_64%" .\dll\net.proto -I.\dll\ --cpp_out="%protoc_out_dir%\\" || (
set /a last_code+=1
)
echo: & echo:
@ -388,93 +389,159 @@ if %BUILD_EXPCLIENT64% equ 1 (
endlocal & set /a last_code=%last_code%
:: copy configs + examples
if %last_code% equ 0 (
echo // copying readmes + files examples
xcopy /y /s "files_example\*" "%build_root_dir%\"
copy /y "%tools_src_dir%\steamclient_loader\win\ColdClientLoader.ini" "%steamclient_dir%\"
REM :: TODO
REM copy /y Readme_release.txt "%build_root_dir%\Readme.txt"
REM copy /y Readme_experimental.txt "%experimental_dir%\Readme.txt"
REM copy /y Readme_experimental_steamclient.txt "%steamclient_dir%\Readme.txt"
REM copy /y Readme_generate_interfaces.txt "%find_interfaces_dir%\Readme.txt"
REM copy /y Readme_lobby_connect.txt "%lobby_connect_dir%\Readme.txt"
) else (
call :err_msg "Not copying readmes or files examples due to previous errors"
)
echo: & echo:
:: cleanup
echo // cleaning up
call :cleanup
echo: & echo:
:: copy configs + examples
if %last_code% equ 0 (
echo // copying readmes + files examples
xcopy /y /s "post_build\steam_settings.EXAMPLE\" "%build_root_dir%\steam_settings.EXAMPLE\"
copy /y "%tools_src_dir%\steamclient_loader\win\ColdClientLoader.ini" "%steamclient_dir%\"
copy /y "post_build\README.release.md" "%build_root_dir%\"
copy /y "CHANGELOG.md" "%build_root_dir%\"
if %BUILD_TYPE%==1 (
copy /y "post_build\README.debug.md" "%build_root_dir%\"
)
if exist "%experimental_dir%" (
copy /y "post_build\README.experimental.md" "%experimental_dir%\"
)
if exist "%steamclient_dir%" (
copy /y "post_build\README.experimental_steamclient.md" "%steamclient_dir%\"
)
if exist "%find_interfaces_dir%" (
copy /y "post_build\README.find_interfaces.md" "%find_interfaces_dir%\"
)
if exist "%lobby_connect_dir%" (
copy /y "post_build\README.lobby_connect.md" "%lobby_connect_dir%\"
)
) else (
call :err_msg "Not copying readmes or files examples due to previous errors"
)
echo: & echo:
goto :end_script
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: x32 + tools
:compile_lib32
setlocal
echo // building lib steam_api.dll - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% /LD %release_incs32% %release_src% %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%build_root_dir%\x32\steam_api.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\steam_api32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /LD %release_incs32% %release_src% %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%build_root_dir%\x32\steam_api.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimental_lib32
setlocal
echo // building lib experimental steam_api.dll - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /LD %release_incs32% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%experimental_dir%\x32\steam_api.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\ex_steam_api32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /LD %release_incs32% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%experimental_dir%\x32\steam_api.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimental_client32
setlocal
echo // building lib experimental steamclient.dll - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /LD %release_incs32% "steamclient\steamclient.cpp" %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%experimental_dir%\x32\steamclient.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\ex_steamclient32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /LD %release_incs32% "steamclient\steamclient.cpp" %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%experimental_dir%\x32\steamclient.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimentalclient_32
setlocal
echo // building lib steamclient.dll - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /DSTEAMCLIENT_DLL /LD %release_incs32% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%steamclient_dir%\steamclient.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\steamclient32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /DSTEAMCLIENT_DLL /LD %release_incs32% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs32% /link %common_win_linker_args_32% /DLL /OUT:"%steamclient_dir%\steamclient.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimentalclient_ldr
setlocal
echo // building executable steamclient_loader.exe - 32
:: common_win_linker_args_32 isn't a mistake, the entry is wWinMain
:: check this table: https://learn.microsoft.com/en-us/cpp/build/reference/entry-entry-point-symbol#remarks
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% %release_incs32% "%tools_src_dir%\steamclient_loader\win\*.cpp" %release_libs32% user32.lib /link %common_win_linker_args_32% /OUT:"%steamclient_dir%\steamclient_loader.exe"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\client_loader32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% %release_incs32% "%tools_src_dir%\steamclient_loader\win\*.cpp" %release_libs32% user32.lib /link %common_win_linker_args_32% /OUT:"%steamclient_dir%\steamclient_loader.exe"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_tool_itf
setlocal
echo // building tool generate_interfaces_file.exe - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% %release_incs32% "%tools_src_dir%\generate_interfaces\generate_interfaces.cpp" %release_libs32% /link %common_exe_linker_args_32% /OUT:"%find_interfaces_dir%\generate_interfaces_file.exe"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\generate_interfaces32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% %release_incs32% "%tools_src_dir%\generate_interfaces\generate_interfaces.cpp" %release_libs32% /link %common_exe_linker_args_32% /OUT:"%find_interfaces_dir%\generate_interfaces_file.exe"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_tool_lobby
setlocal
echo // building tool lobby_connect.exe - 32
cl %common_compiler_args_32% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DNO_DISK_WRITES /DLOBBY_CONNECT %release_incs32% "%tools_src_dir%\lobby_connect\lobby_connect.cpp" %release_src% %release_libs32% Comdlg32.lib /link %common_exe_linker_args_32% /OUT:"%lobby_connect_dir%\lobby_connect.exe"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\lobby_connect32"
mkdir "%_build_tmp%"
cl %common_compiler_args_32% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DNO_DISK_WRITES /DLOBBY_CONNECT %release_incs32% "%tools_src_dir%\lobby_connect\lobby_connect.cpp" %release_src% %release_libs32% Comdlg32.lib /link %common_exe_linker_args_32% /OUT:"%lobby_connect_dir%\lobby_connect.exe"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: x64
:compile_lib64
setlocal
echo // building lib steam_api64.dll - 64
cl %common_compiler_args_64% %debug_info% %debug_info_format% %optimization_level% %release_defs% /LD %release_incs64% %release_src% %release_libs64% /link %common_win_linker_args_64% /DLL /OUT:"%build_root_dir%\x64\steam_api64.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\steam_api64"
mkdir "%_build_tmp%"
cl %common_compiler_args_64% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /LD %release_incs64% %release_src% %release_libs64% /link %common_win_linker_args_64% /DLL /OUT:"%build_root_dir%\x64\steam_api64.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimental_lib64
setlocal
echo // building lib experimental steam_api64.dll - 64
cl %common_compiler_args_64% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /LD %release_incs64% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs64% opengl32.lib /link %common_win_linker_args_64% /DLL /OUT:"%experimental_dir%\x64\steam_api64.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\ex_steam_api64"
mkdir "%_build_tmp%"
cl %common_compiler_args_64% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /LD %release_incs64% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs64% opengl32.lib /link %common_win_linker_args_64% /DLL /OUT:"%experimental_dir%\x64\steam_api64.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimental_client64
setlocal
echo // building lib experimental steamclient64.dll - 64
cl %common_compiler_args_64% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /LD %release_incs64% "steamclient\steamclient.cpp" %release_libs64% /link %common_win_linker_args_64% /DLL /OUT:"%experimental_dir%\x64\steamclient64.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\ex_steamclient64"
mkdir "%_build_tmp%"
cl %common_compiler_args_64% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /LD %release_incs64% "steamclient\steamclient.cpp" %release_libs64% /link %common_win_linker_args_64% /DLL /OUT:"%experimental_dir%\x64\steamclient64.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
:compile_experimentalclient_64
setlocal
echo // building lib steamclient64.dll - 64
cl %common_compiler_args_64% %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /DSTEAMCLIENT_DLL /LD %release_incs64% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs64% opengl32.lib /link %common_win_linker_args_64% /DLL /OUT:"%steamclient_dir%\steamclient64.dll"
exit /b %errorlevel%
set "_build_tmp=%build_temp_dir%\steamclient64"
mkdir "%_build_tmp%"
cl %common_compiler_args_64% /Fo%_build_tmp%\ /Fe%_build_tmp%\ %debug_info% %debug_info_format% %optimization_level% %release_defs% /DEMU_EXPERIMENTAL_BUILD /DCONTROLLER_SUPPORT /DEMU_OVERLAY /DSTEAMCLIENT_DLL /LD %release_incs64% /IImGui /Ioverlay_experimental %release_src% "%libs_dir%\detours\*.cpp" controller/gamepad.c "%libs_dir%\ImGui\*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_dx*.cpp" "%libs_dir%\ImGui\backends\imgui_impl_win32.cpp" "%libs_dir%\ImGui\backends\imgui_impl_vulkan.cpp" "%libs_dir%\ImGui\backends\imgui_impl_opengl3.cpp" "%libs_dir%\ImGui\backends\imgui_win_shader_blobs.cpp" overlay_experimental/*.cpp overlay_experimental/windows/*.cpp overlay_experimental/System/*.cpp %release_libs64% opengl32.lib /link %common_win_linker_args_64% /DLL /OUT:"%steamclient_dir%\steamclient64.dll"
set /a _exit=%errorlevel%
rmdir /s /q "%_build_tmp%"
endlocal & exit /b %_exit%
@ -502,6 +569,7 @@ exit /b 1
del /f /q dll\net.pb.cc >nul 2>&1
del /f /q dll\net.pb.h >nul 2>&1
rmdir /s /q "%build_temp_dir%" >nul 2>&1
rmdir /s /q "%protoc_out_dir%" >nul 2>&1
for %%A in ("ilk" "lib" "exp") do (
del /f /s /q "%build_root_dir%\*.%%~A" >nul 2>&1
)