[libmem] Update to 5.0.5 (#46312)

Co-authored-by: Kai Pastor <dg0yt@darc.de>
This commit is contained in:
Saikari
2025-07-07 23:56:45 +03:00
committed by GitHub
parent e9b0689d12
commit d82f6a365f
12 changed files with 180 additions and 101 deletions

View File

@@ -1,8 +1,10 @@
{
"name": "capstone",
"version": "5.0.3",
"port-version": 1,
"description": "Multi-architecture disassembly framework",
"homepage": "https://github.com/capstone-engine/capstone",
"license": "BSD-3-Clause",
"dependencies": [
{
"name": "vcpkg-cmake",

View File

@@ -0,0 +1,12 @@
diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h
index 3346de93..a2adf853 100644
--- a/llvm/include/llvm/ADT/STLExtras.h
+++ b/llvm/include/llvm/ADT/STLExtras.h
@@ -21,6 +21,7 @@
#include <algorithm> // for std::all_of
#include <cassert>
#include <cstddef> // for std::size_t
+#include <cstdint>
#include <cstdlib> // for qsort
#include <functional>
#include <iterator>

View File

@@ -0,0 +1,39 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,7 +1,7 @@
# Keystone Assembler Engine (www.keystone-engine.org)
# By Nguyen Anh Quynh, 2016
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 3.5)
project(keystone)
set(KEYSTONE_VERSION_MAJOR 0)
@@ -24,7 +24,7 @@ if (POLICY CMP0051)
# stripped everywhere that access the SOURCES property, so we just
# defer to the OLD behavior of not including generator expressions
# in the output for now.
- cmake_policy(SET CMP0051 OLD)
+ # cmake_policy(SET CMP0051 OLD)
endif()
if (POLICY CMP0063)
--- a/llvm/CMakeLists.txt
+++ b/llvm/CMakeLists.txt
@@ -1,6 +1,6 @@
# See docs/CMake.html for instructions about how to build LLVM with CMake.
-cmake_minimum_required(VERSION 2.8.7)
+cmake_minimum_required(VERSION 3.5)
set(LLVM_INSTALL_TOOLCHAIN_ONLY ON)
@@ -19,7 +19,7 @@ if (POLICY CMP0051)
# stripped everywhere that access the SOURCES property, so we just
# defer to the OLD behavior of not including generator expressions
# in the output for now.
- cmake_policy(SET CMP0051 OLD)
+ # cmake_policy(SET CMP0051 OLD)
endif()
if(CMAKE_VERSION VERSION_LESS 3.1.20141117)

View File

@@ -4,9 +4,13 @@ vcpkg_from_github(
REF dc7932ef2b2c4a793836caec6ecab485005139d6 # 0.9.2
SHA512 ebcdb1cca6dfdf76e0ad2a42a667044806e5c083c07357908298c6ef23d15960f887efa05c1cb3dee90ebdcd5af819bcf8af0fa1aa068aa9a0c6703dee29514e
HEAD_REF master
PATCHES
0001-fix-gcc15.patch
0002-fix-cmake4.patch
)
vcpkg_find_acquire_program(PYTHON3)
vcpkg_find_acquire_program(PKGCONFIG)
string(COMPARE EQUAL "${VCPKG_CRT_LINKAGE}" "static" KEYSTONE_BUILD_STATIC_RUNTIME)
@@ -14,7 +18,8 @@ vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DKEYSTONE_BUILD_STATIC_RUNTIME=${KEYSTONE_BUILD_STATIC_RUNTIME}
-DPYTHON_EXECUTABLE=${PYTHON3}
"-DPYTHON_EXECUTABLE=${PYTHON3}"
"-DPKG_CONFIG_EXECUTABLE=${PKGCONFIG}"
# Add support for only a subset of architectures
#-DLLVM_TARGETS_TO_BUILD="AArch64;X86"
@@ -40,5 +45,10 @@ endif()
vcpkg_fixup_pkgconfig()
# Handle copyright
file(INSTALL "${SOURCE_PATH}/COPYING" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)
vcpkg_install_copyright(
COMMENT [[
Keystone is distributed under dual Version 2 of the GNU General Public License (GPLv2) and commercial license.
For commercial usage in production environments, contact the authors of Keystone to buy a royalty-free license keystone.engine@gmail.com
]]
FILE_LIST "${SOURCE_PATH}/COPYING"
)

View File

@@ -1,9 +1,10 @@
{
"name": "keystone",
"version-semver": "0.9.2",
"port-version": 3,
"port-version": 4,
"description": "A Lightweight multi-platform, multi-architecture assembler framework.",
"homepage": "https://github.com/keystone-engine/keystone",
"license": null,
"supports": "!uwp",
"dependencies": [
{

View File

@@ -1,119 +1,119 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 534057a..6241a58 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22.1)
-include(ExternalProject)
+set(CMAKE_CXX_STANDARD 17)
project(libmem
LANGUAGES
@@ -49,6 +49,7 @@ message(STATUS
message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
+if(0)
# External dependencies
set(EXTERNAL_DEPENDENCIES_DIR "${PROJECT_SOURCE_DIR}/external")
set(CAPSTONE_DIR "${EXTERNAL_DEPENDENCIES_DIR}/capstone")
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.22.1)
-include(ExternalProject)
+set(CMAKE_CXX_STANDARD 17)
project(libmem
LANGUAGES
@@ -49,6 +49,7 @@ message(STATUS
message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
+if(0)
# External dependencies
set(EXTERNAL_DEPENDENCIES_DIR "${PROJECT_SOURCE_DIR}/external")
set(CAPSTONE_DIR "${EXTERNAL_DEPENDENCIES_DIR}/capstone")
@@ -66,6 +67,7 @@ set_target_properties(capstone PROPERTIES IMPORTED_LOCATION ${CAPSTONE_IMPORT_DI
add_library(keystone STATIC IMPORTED)
set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX})
# End of external dependencies
+endif()
set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX})
# End of external dependencies
+endif()
set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}")
set(LIBMEM_INC "${LIBMEM_DIR}/include")
set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}")
set(LIBMEM_INC "${LIBMEM_DIR}/include")
@@ -89,10 +91,17 @@ elseif(${CMAKE_SYSTEM_NAME} STREQUAL FreeBSD)
endif()
file(GLOB LIBMEM_SRC ${LIBMEM_ARCH_SRC} "${LIBMEM_DIR}/src/freebsd/*.c" "${LIBMEM_DIR}/src/freebsd/ptrace/*.c" "${LIBMEM_DIR}/src/common/*.c" "${LIBMEM_DIR}/src/common/*.cpp" "${INTERNAL_DIR}/posixutils/*.c" "${INTERNAL_DIR}/elfutils/*.c" "${INTERNAL_DIR}/demangler/*.cpp")
endif()
+find_package(PkgConfig)
endif()
file(GLOB LIBMEM_SRC ${LIBMEM_ARCH_SRC} "${LIBMEM_DIR}/src/freebsd/*.c" "${LIBMEM_DIR}/src/freebsd/ptrace/*.c" "${LIBMEM_DIR}/src/common/*.c" "${LIBMEM_DIR}/src/common/*.cpp" "${INTERNAL_DIR}/posixutils/*.c" "${INTERNAL_DIR}/elfutils/*.c" "${INTERNAL_DIR}/demangler/*.cpp")
endif()
+find_package(PkgConfig)
+pkg_check_modules(keystone REQUIRED IMPORTED_TARGET keystone)
+find_package(capstone CONFIG REQUIRED)
+find_package(capstone CONFIG REQUIRED)
+find_package(LLVM CONFIG REQUIRED)
+target_compile_definitions(LLVMDemangle INTERFACE ${LLVM_DEFINITIONS})
+target_include_directories(LLVMDemangle INTERFACE ${LLVM_INCLUDE_DIRS})
+
set(LIBMEM_DEPS
- capstone
- keystone
- llvm
+ capstone::capstone
set(LIBMEM_DEPS
- capstone
- keystone
- llvm
+ capstone::capstone
+ PkgConfig::keystone
+ LLVMDemangle
)
)
if (LIBMEM_BUILD_STATIC)
@@ -104,9 +113,6 @@ target_include_directories(libmem PRIVATE "${LIBMEM_DIR}/src" "${INTERNAL_DIR}"
include_directories(${PROJECT_SOURCE_DIR}
${LIBMEM_INC}
- ${CAPSTONE_INC}
- ${KEYSTONE_INC}
- ${LLVM_INC}
)
if (LIBMEM_BUILD_TESTS)
include_directories(${PROJECT_SOURCE_DIR}
${LIBMEM_INC}
- ${CAPSTONE_INC}
- ${KEYSTONE_INC}
- ${LLVM_INC}
)
if (LIBMEM_BUILD_TESTS)
@@ -116,10 +122,6 @@ endif()
set_target_properties(libmem PROPERTIES POSITION_INDEPENDENT_CODE True INCLUDES ${LIBMEM_INC})
target_compile_definitions(libmem PUBLIC LM_EXPORT)
-add_dependencies(libmem
- capstone-engine
- keystone-engine
-)
if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
set(LIBMEM_DEPS
set_target_properties(libmem PROPERTIES POSITION_INDEPENDENT_CODE True INCLUDES ${LIBMEM_INC})
target_compile_definitions(libmem PUBLIC LM_EXPORT)
-add_dependencies(libmem
- capstone-engine
- keystone-engine
-)
if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
set(LIBMEM_DEPS
@@ -152,7 +154,7 @@ else()
endif()
target_link_libraries(libmem ${LIBMEM_DEPS})
-if(LIBMEM_BUILD_STATIC)
+if(0)
# Create a bundled static library containing all dependencies (to mimic the shared library behavior)
set_target_properties(libmem PROPERTIES OUTPUT_NAME "libmem_partial")
set(libmem_bundle_files "$<TARGET_FILE:libmem>")
endif()
target_link_libraries(libmem ${LIBMEM_DEPS})
-if(LIBMEM_BUILD_STATIC)
+if(0)
# Create a bundled static library containing all dependencies (to mimic the shared library behavior)
set_target_properties(libmem PROPERTIES OUTPUT_NAME "libmem_partial")
set(libmem_bundle_files "$<TARGET_FILE:libmem>")
@@ -193,7 +195,7 @@ if(LIBMEM_BUILD_STATIC)
endif()
endif()
-if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
+if(0)
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
cmake_path(SET CMAKE_INSTALL_PREFIX "$ENV{ProgramFiles}")
else()
endif()
endif()
-if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
+if(0)
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN)
cmake_path(SET CMAKE_INSTALL_PREFIX "$ENV{ProgramFiles}")
else()
@@ -202,14 +204,25 @@ if(${CMAKE_SYSTEM_NAME} STREQUAL Windows OR ${CMAKE_SYSTEM_NAME} STREQUAL CYGWIN
endif()
set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmem")
execute_process(COMMAND mkdir "${CMAKE_INSTALL_PREFIX}")
-else()
set(CMAKE_INSTALL_PREFIX "/usr")
endif()
-install(TARGETS libmem
- LIBRARY DESTINATION lib)
-
-install(TARGETS libmem
- RUNTIME DESTINATION lib)
-
install(DIRECTORY ${LIBMEM_INC}/libmem DESTINATION include)
endif()
set(CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}/libmem")
execute_process(COMMAND mkdir "${CMAKE_INSTALL_PREFIX}")
-else()
set(CMAKE_INSTALL_PREFIX "/usr")
endif()
-install(TARGETS libmem
- LIBRARY DESTINATION lib)
-
-install(TARGETS libmem
- RUNTIME DESTINATION lib)
-
install(DIRECTORY ${LIBMEM_INC}/libmem DESTINATION include)
+install(TARGETS libmem EXPORT libmem-targets
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+ LIBRARY DESTINATION lib
+ ARCHIVE DESTINATION lib
+ RUNTIME DESTINATION bin
+)
+install(EXPORT libmem-targets NAMESPACE libmem:: DESTINATION "share/libmem")
+include(CMakePackageConfigHelpers)
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ "${CMAKE_CURRENT_LIST_DIR}/libmem-config.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake"
+ INSTALL_DESTINATION "share/libmem"
+)
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" VERSION 5.0.4 COMPATIBILITY SameMajorVersion)
+write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY SameMajorVersion)
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/libmem-config.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/libmem-config-version.cmake"

View File

@@ -2,7 +2,7 @@ vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO rdbo/libmem
REF "${VERSION}"
SHA512 a3245fedb0447133a674dc39b3f9dc0bce86cb8ed775cb50bc3b58ee410632653cfc340d17c2ca0a914e51ade9b62f393e23feb5f3d0459b1a1a8ce690a0d025
SHA512 fb953952c1d11d453ab290b0e3af38ebb24e81fcfeb62b0f8fb7a50e1de2304c2116278b8fefe885708d2705239be2c92bb592cbe912e5fcb0dbf83e5de529f4
HEAD_REF master
PATCHES
0001-CMakeLists.patch
@@ -14,6 +14,7 @@ string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "static" LIBMEM_BUILD_STATIC)
vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DVERSION=${VERSION}
-DLIBMEM_BUILD_TESTS=OFF
-DLIBMEM_DEEP_TESTS=OFF
-DLIBMEM_BUILD_STATIC=${LIBMEM_BUILD_STATIC}

View File

@@ -1,7 +1,6 @@
{
"name": "libmem",
"version": "5.0.4",
"port-version": 1,
"version": "5.0.5",
"description": "Advanced Game Hacking Library for C, Modern C++, Rust and Python (Windows/Linux/FreeBSD) (Process/Memory Hacking) (Hooking/Detouring) (Cross Platform) (x86/x64/ARM/ARM64) (DLL/SO Injection) (Internal/External) (Assembler/Disassembler)",
"homepage": "https://github.com/rdbo/libmem",
"license": "AGPL-3.0-only",

View File

@@ -1554,7 +1554,7 @@
},
"capstone": {
"baseline": "5.0.3",
"port-version": 0
"port-version": 1
},
"cargs": {
"baseline": "1.2.0",
@@ -4138,7 +4138,7 @@
},
"keystone": {
"baseline": "0.9.2",
"port-version": 3
"port-version": 4
},
"kf5archive": {
"baseline": "5.98.0",
@@ -5005,8 +5005,8 @@
"port-version": 0
},
"libmem": {
"baseline": "5.0.4",
"port-version": 1
"baseline": "5.0.5",
"port-version": 0
},
"libmesh": {
"baseline": "1.5.0",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "ff71755fc4ef3ba463ff94cd92781858462f7a15",
"version": "5.0.3",
"port-version": 1
},
{
"git-tree": "cb3992e2d7e4d93f74f8e3eaa659a0fea78cce75",
"version": "5.0.3",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "ae3e41c7c39b15befdb85f67c28bf1f3bfa8234d",
"version-semver": "0.9.2",
"port-version": 4
},
{
"git-tree": "c08eb2c84899fd5de79744b811c859667c7cfc17",
"version-semver": "0.9.2",

View File

@@ -1,5 +1,10 @@
{
"versions": [
{
"git-tree": "0bbca85bef2018ea432e17f2438b0ad38c7f9994",
"version": "5.0.5",
"port-version": 0
},
{
"git-tree": "c3976946c21950dfa4dbd506e05cf3b592da1b7f",
"version": "5.0.4",