Ported from sacredK with module-relative addresses, hooks by exported name and a SHA-256 check of the six game modules (Community Patch 2.65.1). Borderless windowed at monitor size replaces exclusive fullscreen, whose focus loss during loading made the game quit and crash on exit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
27 lines
845 B
CMake
27 lines
845 B
CMake
# Microsoft Detours (MIT) — function hooking and DLL injection.
|
|
# Upstream ships no CMake build, so we compile its sources into a static lib.
|
|
include(FetchContent)
|
|
FetchContent_Declare(detours_src
|
|
GIT_REPOSITORY https://github.com/microsoft/Detours.git
|
|
GIT_TAG v4.0.1
|
|
GIT_SHALLOW TRUE
|
|
)
|
|
FetchContent_MakeAvailable(detours_src)
|
|
|
|
set(_d ${detours_src_SOURCE_DIR}/src)
|
|
add_library(detours STATIC
|
|
${_d}/detours.cpp
|
|
${_d}/modules.cpp
|
|
${_d}/disasm.cpp
|
|
${_d}/image.cpp
|
|
${_d}/creatwth.cpp
|
|
${_d}/disolx86.cpp
|
|
${_d}/disolx64.cpp
|
|
${_d}/disolia64.cpp
|
|
${_d}/disolarm.cpp
|
|
${_d}/disolarm64.cpp
|
|
)
|
|
target_include_directories(detours PUBLIC ${_d})
|
|
# C++20 implies /permissive-, which v4.0.1 does not compile under (goto over initialisations).
|
|
target_compile_options(detours PRIVATE /W3 /permissive)
|