diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/unicorn | |
Diffstat (limited to 'vcpkg/ports/unicorn')
| -rw-r--r-- | vcpkg/ports/unicorn/fix-build.patch | 13 | ||||
| -rw-r--r-- | vcpkg/ports/unicorn/fix-msvc-shared.patch | 24 | ||||
| -rw-r--r-- | vcpkg/ports/unicorn/portfile.cmake | 39 | ||||
| -rw-r--r-- | vcpkg/ports/unicorn/vcpkg.json | 14 |
4 files changed, 90 insertions, 0 deletions
diff --git a/vcpkg/ports/unicorn/fix-build.patch b/vcpkg/ports/unicorn/fix-build.patch new file mode 100644 index 0000000..f04f992 --- /dev/null +++ b/vcpkg/ports/unicorn/fix-build.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3fcde11..1acc0b5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -128,7 +128,7 @@ if(MSVC)
+ # handle msvcrt setting being passed in CMAKE_C_FLAGS
+ if(CMAKE_C_FLAGS MATCHES "[/-]M[TD]d?")
+ # ensure CMAKE_MSVC_RUNTIME_LIBRARY is not already defined
+- if(DEFINED CMAKE_MSVC_RUNTIME_LIBRARY)
++ if(NOT CMAKE_MSVC_RUNTIME_LIBRARY)
+ message(FATAL_ERROR "please set the runtime library via either CMAKE_C_FLAGS or CMAKE_MSVC_RUNTIME_LIBRARY, not both")
+ endif()
+
diff --git a/vcpkg/ports/unicorn/fix-msvc-shared.patch b/vcpkg/ports/unicorn/fix-msvc-shared.patch new file mode 100644 index 0000000..b018db2 --- /dev/null +++ b/vcpkg/ports/unicorn/fix-msvc-shared.patch @@ -0,0 +1,24 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa94074..3471cc4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1447,9 +1447,8 @@ if (UNICORN_LEGACY_STATIC_ARCHIVE)
+ if (BUILD_SHARED_LIBS)
+ if (MSVC)
+ # Avoid the import lib built by MVSC clash with our archive.
+- set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn-import")
++ set_target_properties(unicorn PROPERTIES ARCHIVE_OUTPUT_NAME "unicorn")
+ endif()
+- bundle_static_library(unicorn_static unicorn_archive unicorn)
+ else()
+ # Rename the "static" lib to avoid filename clash.
+ set_target_properties(unicorn PROPERTIES OUTPUT_NAME "unicorn-static")
+@@ -1517,7 +1517,7 @@ if(UNICORN_INSTALL)
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+ endif()
+- if (UNICORN_LEGACY_STATIC_ARCHIVE)
++ if (NOT(BUILD_SHARED_LIBS))
+ install(FILES $<TARGET_FILE:unicorn_archive> DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES $<TARGET_FILE_DIR:unicorn_archive>/$<TARGET_PROPERTY:unicorn_archive,SYMLINK_NAME> DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ endif()
diff --git a/vcpkg/ports/unicorn/portfile.cmake b/vcpkg/ports/unicorn/portfile.cmake new file mode 100644 index 0000000..eb25f1c --- /dev/null +++ b/vcpkg/ports/unicorn/portfile.cmake @@ -0,0 +1,39 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO unicorn-engine/unicorn + REF "${VERSION}" + SHA512 c9ae4230a20b77e0187cde33dbf4827b3504b6c24debd61fc79ec9c13fa2051335c834c101433cebbbc8e3baadae56212b79c5922bf37ea1f777d66d8e67b495 + HEAD_REF master + PATCHES + fix-build.patch + fix-msvc-shared.patch +) + +if(VCPKG_TARGET_IS_ANDROID) + vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" + "-lpthread" + " " + ) +endif() + +if(VCPKG_TARGET_IS_WINDOWS) + vcpkg_replace_string("${SOURCE_PATH}/CMakeLists.txt" + "-lpthread -lm" + " " + ) +endif() + +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + OPTIONS + -DUNICORN_BUILD_TESTS=OFF +) + +vcpkg_cmake_install() +vcpkg_fixup_pkgconfig() +vcpkg_copy_pdbs() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share") + +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/COPYING") diff --git a/vcpkg/ports/unicorn/vcpkg.json b/vcpkg/ports/unicorn/vcpkg.json new file mode 100644 index 0000000..c275fe3 --- /dev/null +++ b/vcpkg/ports/unicorn/vcpkg.json @@ -0,0 +1,14 @@ +{ + "name": "unicorn", + "version": "2.1.4", + "description": "Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework", + "homepage": "https://github.com/unicorn-engine/unicorn", + "license": "GPL-2.0-only", + "supports": "!(arm & windows)", + "dependencies": [ + { + "name": "vcpkg-cmake", + "host": true + } + ] +} |