fix msvc compiling
This commit is contained in:
@ -38,7 +38,7 @@ void debug_hook_init()
|
|||||||
debug_hook_initted = true;
|
debug_hook_initted = true;
|
||||||
|
|
||||||
hook_table_apply(NULL, "kernel32.dll", debug_hooks, _countof(debug_hooks));
|
hook_table_apply(NULL, "kernel32.dll", debug_hooks, _countof(debug_hooks));
|
||||||
dprintf("debug: hook enabled.\n");
|
dprintf("IsDebuggerPresent: hook enabled\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL WINAPI hook_IsDebuggerPresent()
|
BOOL WINAPI hook_IsDebuggerPresent()
|
||||||
|
113
msvc-build.bat
113
msvc-build.bat
@ -1,4 +1,6 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
setlocal enabledelayedexpansion
|
||||||
|
|
||||||
set BUILD_DIR=build
|
set BUILD_DIR=build
|
||||||
set BUILD_DIR_32=%BUILD_DIR%\build32
|
set BUILD_DIR_32=%BUILD_DIR%\build32
|
||||||
set BUILD_DIR_64=%BUILD_DIR%\build64
|
set BUILD_DIR_64=%BUILD_DIR%\build64
|
||||||
@ -6,11 +8,33 @@ set BUILD_DIR_ZIP=%BUILD_DIR%\zip
|
|||||||
set DIST_DIR=dist
|
set DIST_DIR=dist
|
||||||
set DOC_DIR=doc
|
set DOC_DIR=doc
|
||||||
|
|
||||||
REM Set Your Visual Studio install path if this one was wrong
|
REM Set your Visual Studio install path if Visual Studio installation can not be detected
|
||||||
if "%VS_INSTALLATION%"=="" set VS_INSTALLATION=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools
|
set VS_INSTALLATION=C:\Program Files\Microsoft Visual Studio\2022\Community
|
||||||
|
|
||||||
if /I "%1"=="build" (
|
if /I "%1"=="build" (
|
||||||
call :build
|
call :detect-visual-studio
|
||||||
|
if ERRORLEVEL 2 exit /b
|
||||||
|
if ERRORLEVEL 1 (
|
||||||
|
echo Failed to detect Visual Studio installation path.
|
||||||
|
echo.
|
||||||
|
echo If Visual Studio is installed then edit VS_INSTALLATION in this file
|
||||||
|
echo to manually specify Visual Studio install path.
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
call :detect-meson
|
||||||
|
if ERRORLEVEL 1 (
|
||||||
|
echo Meson is not installed.
|
||||||
|
exit /b
|
||||||
|
)
|
||||||
|
|
||||||
|
set VSVARSALL=!VSVARSALL!
|
||||||
|
set MESON=!MESON!
|
||||||
|
|
||||||
|
call :build %2
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo Build done!
|
||||||
exit /b
|
exit /b
|
||||||
)
|
)
|
||||||
if /I "%1"=="zip" (
|
if /I "%1"=="zip" (
|
||||||
@ -18,56 +42,95 @@ if /I "%1"=="zip" (
|
|||||||
exit /b
|
exit /b
|
||||||
)
|
)
|
||||||
|
|
||||||
echo %~nx0 [action]
|
echo %~nx0 [action] [switch]
|
||||||
echo build: Build the for both x86 and x64
|
echo build: Build the for both x86 and x64
|
||||||
|
echo /PROJECTONLY: Only create projects
|
||||||
|
echo.
|
||||||
echo zip: Make zip file
|
echo zip: Make zip file
|
||||||
|
echo.
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
:build (
|
rem This should works for Visual Studio 2017+
|
||||||
REM Check VC++
|
:detect-visual-studio (
|
||||||
set VSVARALL="%VS_INSTALLATION%\VC\Auxiliary\Build\vcvarsall.bat"
|
rem Who the hell on earth is still using a 32bit Windows in 2024
|
||||||
if not exist %VSVARALL% (
|
if "%ProgramFiles(x86)%"=="" (
|
||||||
echo Build tools for Microsoft Visual C++ 2022 is not Installed
|
set VSWHERE="%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"
|
||||||
echo Edit this file to change the VS_INSTALLATION if you are installed the Visual Studio in other path
|
) else (
|
||||||
goto end
|
set VSWHERE="%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"
|
||||||
)
|
)
|
||||||
|
|
||||||
REM Check Meson
|
if exist %VSWHERE% (
|
||||||
|
REM get vcvarsall by using vswhere
|
||||||
|
set VSVARSALL=""
|
||||||
|
for /f "tokens=* usebackq" %%i in (`%VSWHERE% -find VC\Auxiliary\Build\vcvarsall.bat`) do set VSVARSALL="%%i"
|
||||||
|
) else (
|
||||||
|
REM fallback to old method
|
||||||
|
set VSVARSALL="%VS_INSTALLATION%\VC\Auxiliary\Build\vcvarsall.bat"
|
||||||
|
)
|
||||||
|
|
||||||
|
:check-vcvarsall
|
||||||
|
if /i %VSVARSALL%=="" (
|
||||||
|
echo Microsoft Visual C++ Component is not installed
|
||||||
|
echo Install it from Visual Studio Installer
|
||||||
|
exit /b 2
|
||||||
|
)
|
||||||
|
|
||||||
|
rem if a path is returned by vswhere, then it's sure that the result path exists
|
||||||
|
rem if path not exists than it was assumed from VS_INSTALLATION
|
||||||
|
if not exist %VSVARSALL% (
|
||||||
|
echo vsvarsall.bat not exists in VS_INSTALLATION,
|
||||||
|
echo either Visual C++ Component is not installed
|
||||||
|
echo or VS_INSTALLATION is wrong.
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
exit /b 0
|
||||||
|
)
|
||||||
|
|
||||||
|
:detect-meson (
|
||||||
|
set MESON=""
|
||||||
for /f "tokens=* usebackq" %%i in (`where meson`) do set MESON="%%i"
|
for /f "tokens=* usebackq" %%i in (`where meson`) do set MESON="%%i"
|
||||||
if not exist %MESON% (
|
if not exist %MESON% (
|
||||||
echo Meson is not Installed
|
exit /b 1
|
||||||
goto end
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
exit /b 0
|
||||||
|
)
|
||||||
|
|
||||||
|
:build (
|
||||||
:build_x64 (
|
:build_x64 (
|
||||||
call %VSVARALL% x64
|
call %VSVARSALL% x64
|
||||||
|
|
||||||
if exist %BUILD_DIR_64% (
|
if exist %BUILD_DIR_64% (
|
||||||
%MESON% setup %BUILD_DIR_64% --backend vs --buildtype release --reconfigure
|
%MESON% setup %BUILD_DIR_64% --buildtype release --reconfigure
|
||||||
) else (
|
) else (
|
||||||
%MESON% setup %BUILD_DIR_64% --backend vs --buildtype release
|
%MESON% setup %BUILD_DIR_64% --backend vs --buildtype release
|
||||||
)
|
)
|
||||||
|
|
||||||
pushd %BUILD_DIR_64%
|
if /I not "%1"=="/PROJECTONLY" (
|
||||||
msbuild /m /p:Configuration=release /p:Platform=x64 segatools.sln
|
pushd %BUILD_DIR_64%
|
||||||
popd
|
msbuild /m /p:Configuration=release /p:Platform=x64 bananatools.sln
|
||||||
|
popd
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
:build_x86 (
|
:build_x86 (
|
||||||
call %VSVARALL% x86
|
call %VSVARSALL% x86
|
||||||
|
|
||||||
if exist %BUILD_DIR_32% (
|
if exist %BUILD_DIR_32% (
|
||||||
%MESON% setup %BUILD_DIR_32% --backend vs --buildtype release --reconfigure
|
%MESON% setup %BUILD_DIR_32% --buildtype release --reconfigure
|
||||||
) else (
|
) else (
|
||||||
%MESON% setup %BUILD_DIR_32% --backend vs --buildtype release
|
%MESON% setup %BUILD_DIR_32% --backend vs --buildtype release
|
||||||
)
|
)
|
||||||
|
|
||||||
pushd %BUILD_DIR_32%
|
if /I not "%1"=="/PROJECTONLY" (
|
||||||
msbuild /m /p:Configuration=release /p:Platform=Win32 segatools.sln
|
pushd %BUILD_DIR_32%
|
||||||
popd
|
msbuild /m /p:Configuration=release /p:Platform=Win32 bananatools.sln
|
||||||
|
popd
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
:end (
|
:end (
|
||||||
endlocal
|
exit /b
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -129,7 +129,7 @@ static uint32_t (WINAPI *next_IcmpSendEcho)(
|
|||||||
DWORD ReplySize,
|
DWORD ReplySize,
|
||||||
DWORD Timeout);
|
DWORD Timeout);
|
||||||
|
|
||||||
static struct hostent* (*WSAAPI next_gethostbyname)(const char *name);
|
static struct hostent* (*next_gethostbyname)(const char *name);
|
||||||
|
|
||||||
static const struct hook_symbol netenv_hook_syms[] = {
|
static const struct hook_symbol netenv_hook_syms[] = {
|
||||||
{
|
{
|
||||||
@ -579,7 +579,7 @@ static uint32_t WINAPI hook_IcmpSendEcho(
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct hostent WSAAPI *my_gethostbyname(const char *name)
|
static struct hostent *WSAAPI my_gethostbyname(const char *name)
|
||||||
{
|
{
|
||||||
char my_hostname[256];
|
char my_hostname[256];
|
||||||
gethostname(my_hostname, 256);
|
gethostname(my_hostname, 256);
|
||||||
@ -597,4 +597,4 @@ static struct hostent WSAAPI *my_gethostbyname(const char *name)
|
|||||||
h->h_addr_list[0][2] = (char)(netenv_ip_iface >> 8);
|
h->h_addr_list[0][2] = (char)(netenv_ip_iface >> 8);
|
||||||
h->h_addr_list[0][3] = (char)netenv_ip_iface;
|
h->h_addr_list[0][3] = (char)netenv_ip_iface;
|
||||||
return h;
|
return h;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user