aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/unicorn
diff options
context:
space:
mode:
Diffstat (limited to 'vcpkg/ports/unicorn')
-rw-r--r--vcpkg/ports/unicorn/fix-build.patch13
-rw-r--r--vcpkg/ports/unicorn/fix-msvc-shared.patch24
-rw-r--r--vcpkg/ports/unicorn/portfile.cmake39
-rw-r--r--vcpkg/ports/unicorn/vcpkg.json14
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
+ }
+ ]
+}