diff options
Diffstat (limited to 'vcpkg/ports/libudis86')
| -rw-r--r-- | vcpkg/ports/libudis86/CMakeLists.txt | 60 | ||||
| -rw-r--r-- | vcpkg/ports/libudis86/fix-macbuild.patch | 37 | ||||
| -rw-r--r-- | vcpkg/ports/libudis86/portfile.cmake | 33 | ||||
| -rw-r--r-- | vcpkg/ports/libudis86/python3.patch | 17 | ||||
| -rw-r--r-- | vcpkg/ports/libudis86/vcpkg.json | 13 |
5 files changed, 160 insertions, 0 deletions
diff --git a/vcpkg/ports/libudis86/CMakeLists.txt b/vcpkg/ports/libudis86/CMakeLists.txt new file mode 100644 index 0000000..eb79427 --- /dev/null +++ b/vcpkg/ports/libudis86/CMakeLists.txt @@ -0,0 +1,60 @@ +cmake_minimum_required (VERSION 3.9) + +project (udis86) + +add_definitions(-DHAVE_STRING_H) +if (MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +endif() + +set( + lib_sources + libudis86/decode.c + libudis86/itab.c + libudis86/syn-att.c + libudis86/syn-intel.c + libudis86/syn.c + libudis86/udis86.c +) + +set(lib_headers + libudis86/decode.h + libudis86/itab.h + libudis86/extern.h + libudis86/syn.h + libudis86/types.h + libudis86/udint.h +) + +set(cli_srcs udcli/udcli.c) + +include_directories(.) + +add_library(libudis86 ${lib_sources}) + +if(BUILD_SHARED_LIBS) + target_compile_definitions(libudis86 PRIVATE -D_USRDLL) +endif() + +add_executable(udcli ${cli_srcs}) +target_link_libraries(udcli libudis86) + + +install( + TARGETS libudis86 + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib + ARCHIVE DESTINATION lib +) + +if(NOT DISABLE_INSTALL_TOOLS) + install ( + TARGETS udcli + RUNTIME DESTINATION tools/libudis86 + ) +endif() + +if(NOT DISABLE_INSTALL_HEADERS) + install(FILES ${lib_headers} DESTINATION include/libudis86) + install(FILES udis86.h DESTINATION include) +endif() diff --git a/vcpkg/ports/libudis86/fix-macbuild.patch b/vcpkg/ports/libudis86/fix-macbuild.patch new file mode 100644 index 0000000..c9bf1a9 --- /dev/null +++ b/vcpkg/ports/libudis86/fix-macbuild.patch @@ -0,0 +1,37 @@ +diff --git a/libudis86/udis86.c b/libudis86/udis86.c +index e039c4e..8459012 100644 +--- a/libudis86/udis86.c ++++ b/libudis86/udis86.c +@@ -34,6 +34,10 @@ + # endif + #endif /* !__UD_STANDALONE__ */ + ++#if defined(__APPLE__) ++# include <string.h> ++#endif ++ + static void ud_inp_init(struct ud *u); + + /* ============================================================================= +diff --git a/udcli/udcli.c b/udcli/udcli.c +index 9b044ca..ad1e4ab 100644 +--- a/udcli/udcli.c ++++ b/udcli/udcli.c +@@ -27,13 +27,11 @@ + #include <stdio.h> + #include <string.h> + #include <ctype.h> +-#ifdef _MSC_VER +-#include "..\udis86.h" +-#define PACKAGE_STRING "udis86 pre-1.8" +-#else + #include <udis86.h> +-#include <config.h> +-#endif ++#define PACKAGE_STRING "udis86 pre-1.8" ++#ifdef HAVE_CONFIG_H ++# include <config.h> ++#endif /* HAVE_CONFIG_H */ + + #if defined(__APPLE__) + # define FMT64 "ll" diff --git a/vcpkg/ports/libudis86/portfile.cmake b/vcpkg/ports/libudis86/portfile.cmake new file mode 100644 index 0000000..24f93ea --- /dev/null +++ b/vcpkg/ports/libudis86/portfile.cmake @@ -0,0 +1,33 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO vmt/udis86 + REF 56ff6c87c11de0ffa725b14339004820556e343d + SHA512 7a98333f9310f5f0466294bd980f03f9269c118a7557832015c59a7b6349a0eeab5642e0e6598d0be76d71f5d2d566d8b8af0ec75c26bdcff45646d60ff18e3a + HEAD_REF master + PATCHES + fix-macbuild.patch + python3.patch # from https://github.com/vmt/udis86/pull/133 +) + +file(COPY "${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") + +vcpkg_find_acquire_program(PYTHON3) + +vcpkg_execute_required_process( + COMMAND "${PYTHON3}" "${SOURCE_PATH}/scripts/ud_itab.py" "${SOURCE_PATH}/docs/x86/optable.xml" "${SOURCE_PATH}/libudis86/" + WORKING_DIRECTORY "${SOURCE_PATH}" + LOGNAME python-${TARGET_TRIPLET}-generate-sources +) + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS_DEBUG + -DDISABLE_INSTALL_HEADERS=ON + -DDISABLE_INSTALL_TOOLS=ON +) + +vcpkg_cmake_install() +vcpkg_copy_pdbs() +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) + +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/libudis86/python3.patch b/vcpkg/ports/libudis86/python3.patch new file mode 100644 index 0000000..0c8f851 --- /dev/null +++ b/vcpkg/ports/libudis86/python3.patch @@ -0,0 +1,17 @@ +diff --git a/scripts/ud_opcode.py b/scripts/ud_opcode.py +index fe1833d..30c9f43 100644 +--- a/scripts/ud_opcode.py ++++ b/scripts/ud_opcode.py +@@ -550,10 +550,10 @@ def printWalk(tbl, indent=""): + entries = tbl.entries() + for k, e in entries: + if isinstance(e, UdOpcodeTable): +- self.log("%s |-<%02x> %s" % (indent, k, e)) ++ self.log("%s |-<%02x> %s" % (indent, int(k), e)) + printWalk(e, indent + " |") + elif isinstance(e, UdInsnDef): +- self.log("%s |-<%02x> %s" % (indent, k, e)) ++ self.log("%s |-<%02x> %s" % (indent, int(k), e)) + printWalk(self.root) + + diff --git a/vcpkg/ports/libudis86/vcpkg.json b/vcpkg/ports/libudis86/vcpkg.json new file mode 100644 index 0000000..8ec4ad5 --- /dev/null +++ b/vcpkg/ports/libudis86/vcpkg.json @@ -0,0 +1,13 @@ +{ + "name": "libudis86", + "version-date": "2018-01-28", + "port-version": 4, + "description": "Disassembler Library for x86 and x86-64", + "homepage": "https://github.com/vmt/udis86", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |