mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-27 10:21:07 +08:00
[detours] new port (#5347)
* [detours] new port * [detours] Use PATCHES parameter instead of vcpkg_apply_patches function
This commit is contained in:
parent
349d82eeca
commit
07156ed156
3
ports/detours/CONTROL
Normal file
3
ports/detours/CONTROL
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Source: detours
|
||||||
|
Version: 4.0.1
|
||||||
|
Description: Detours is a software package for monitoring and instrumenting API calls on Windows.
|
24
ports/detours/find-jmp-bounds-arm64.patch
Normal file
24
ports/detours/find-jmp-bounds-arm64.patch
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
diff --git a/src/detours.cpp b/src/detours.cpp
|
||||||
|
index 8345c4d..3cd0e9d 100644
|
||||||
|
--- a/src/detours.cpp
|
||||||
|
+++ b/src/detours.cpp
|
||||||
|
@@ -974,6 +974,19 @@ inline PBYTE detour_skip_jmp(PBYTE pbCode, PVOID *ppGlobals)
|
||||||
|
return pbCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
+inline void detour_find_jmp_bounds(PBYTE pbCode,
|
||||||
|
+ PDETOUR_TRAMPOLINE *ppLower,
|
||||||
|
+ PDETOUR_TRAMPOLINE *ppUpper)
|
||||||
|
+{
|
||||||
|
+ // We have to place trampolines within +/- 2GB of code.
|
||||||
|
+ ULONG_PTR lo = detour_2gb_below((ULONG_PTR)pbCode);
|
||||||
|
+ ULONG_PTR hi = detour_2gb_above((ULONG_PTR)pbCode);
|
||||||
|
+ DETOUR_TRACE(("[%p..%p..%p]\n", lo, pbCode, hi));
|
||||||
|
+
|
||||||
|
+ *ppLower = (PDETOUR_TRAMPOLINE)lo;
|
||||||
|
+ *ppUpper = (PDETOUR_TRAMPOLINE)hi;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
inline BOOL detour_does_code_end_function(PBYTE pbCode)
|
||||||
|
{
|
||||||
|
ULONG Opcode = fetch_opcode(pbCode);
|
28
ports/detours/portfile.cmake
Normal file
28
ports/detours/portfile.cmake
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
include(vcpkg_common_functions)
|
||||||
|
find_program(NMAKE nmake)
|
||||||
|
|
||||||
|
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
|
||||||
|
|
||||||
|
vcpkg_from_github(
|
||||||
|
OUT_SOURCE_PATH SOURCE_PATH
|
||||||
|
REPO Microsoft/Detours
|
||||||
|
REF v4.0.1
|
||||||
|
SHA512 0a9c21b8222329add2de190d2e94d99195dfa55de5a914b75d380ffe0fb787b12e016d0723ca821001af0168fd1643ffd2455298bf3de5fdc155b3393a3ccc87
|
||||||
|
HEAD_REF master
|
||||||
|
PATCHES
|
||||||
|
find-jmp-bounds-arm64.patch
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ENV{DETOURS_TARGET_PROCESSOR} "${VCPKG_TARGET_ARCHITECTURE}")
|
||||||
|
|
||||||
|
vcpkg_execute_required_process(
|
||||||
|
COMMAND ${NMAKE}
|
||||||
|
WORKING_DIRECTORY ${SOURCE_PATH}/src
|
||||||
|
LOGNAME build-${TARGET_TRIPLET}
|
||||||
|
)
|
||||||
|
|
||||||
|
# Detours does not differentiate between Release and Debug builds, use the same binaries for both.
|
||||||
|
file(INSTALL ${SOURCE_PATH}/lib.${VCPKG_TARGET_ARCHITECTURE}/ DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
|
||||||
|
file(INSTALL ${SOURCE_PATH}/lib.${VCPKG_TARGET_ARCHITECTURE}/ DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
|
||||||
|
file(INSTALL ${SOURCE_PATH}/include DESTINATION ${CURRENT_PACKAGES_DIR})
|
||||||
|
file(INSTALL ${SOURCE_PATH}/LICENSE.md DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
Loading…
x
Reference in New Issue
Block a user