Files
UnrealEngine/Engine/Source/ThirdParty/Detours/Build.bat
2025-05-18 13:04:45 +08:00

77 lines
1.7 KiB
Batchfile

@echo off
if "%VCToolsInstallDir%"=="" (
echo Run batch file from a x64 visual studio command prompt
goto ExitAll
)
if "%~1"=="" (
echo MUST set first parameter to root of Detours code sync
goto ExitAll
)
if not exist %1\src (
echo No src folder found in %1
goto ExitAll
)
pushd %cd%
cd %1
SET VS_SDK=%VCToolsInstallDir%
SET WIN_SDK=%WindowsSdkDir%\%WindowsSDKVersion%
SET INCLUDE_PATHS=/I "%WIN_SDK%\shared" /I "%WIN_SDK%\um" /I "%WIN_SDK%\ucrt" /I "%VS_SDK%\include"
SET SOURCE_FILES=detours.cpp modules.cpp disasm.cpp image.cpp creatwth.cpp disolx86.cpp disolx64.cpp disolia64.cpp disolarm.cpp disolarm64.cpp
SET OBJ_FILES=detours.obj modules.obj disasm.obj image.obj creatwth.obj disolx86.obj disolx64.obj disolia64.obj disolarm.obj disolarm64.obj
SET CL_OPTIONS=/nologo /W4 /WX /we4777 /we4800 /Zi /Gy /Gm- /Zl /DDETOUR_DEBUG=0 /DWIN32_LEAN_AND_MEAN /D_WIN32_WINNT=0x501 %INCLUDE_PATHS% %SOURCE_FILES%
SET LINK_OPTIONS=/nologo %OBJ_FILES%
SET ARCH=x64
call :ExecuteArch
SET ARCH=arm64
call :ExecuteArch
goto ExitFile
:ExecuteArch
SET VS_BIN=%VS_SDK%\bin\HostX64\%ARCH%
SET OUTPUTDIR=ReleaseMT_%ARCH%
SET CL_EXTRA_OPTIONS=/MT /O2
call :ExecuteConfig
SET OUTPUTDIR=DebugMT_%ARCH%
SET CL_EXTRA_OPTIONS=/MTd /Od
call :ExecuteConfig
SET OUTPUTDIR=ReleaseMD_%ARCH%
SET CL_EXTRA_OPTIONS=/MD /O2
call :ExecuteConfig
SET OUTPUTDIR=DebugMD_%ARCH%
SET CL_EXTRA_OPTIONS=/MDd /Od
call :ExecuteConfig
goto:eof
:ExecuteConfig
echo BUILDING %OUTPUTDIR%
mkdir %OUTPUTDIR% 2>nul
cd src
mkdir %OUTPUTDIR% 2>nul
"%VS_BIN%\cl.exe" %CL_EXTRA_OPTIONS% /Fd..\%OUTPUTDIR%\detours.pdb /Fo%OUTPUTDIR%\ /c %CL_OPTIONS%
cd %OUTPUTDIR%
"%VS_BIN%\link" /lib /out:..\..\%OUTPUTDIR%\detours.lib %LINK_OPTIONS%
cd ..
cd ..
goto:eof
:ExitFile
popd
:ExitAll