aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2017-12-08 23:54:41 -0800
committerRobert Schumacher <roschuma@microsoft.com>2017-12-08 23:54:41 -0800
commit8766979444d7652b5c170b487ac39391d85b292e (patch)
treeac6e19cdc58a184dcd81b75162493d92d1a9b65f
parent8ea6a9818a10a6eb84350cb4855d4c8c2bae9f8e (diff)
downloadvcpkg-8766979444d7652b5c170b487ac39391d85b292e.tar.gz
vcpkg-8766979444d7652b5c170b487ac39391d85b292e.zip
[unicorn] Adjust handling of CRT and LIBRARY LINKAGE. Reformat to LF.
-rw-r--r--ports/unicorn/CONTROL6
-rw-r--r--ports/unicorn/portfile.cmake105
2 files changed, 61 insertions, 50 deletions
diff --git a/ports/unicorn/CONTROL b/ports/unicorn/CONTROL
index ad91f82b5..d60ab9f78 100644
--- a/ports/unicorn/CONTROL
+++ b/ports/unicorn/CONTROL
@@ -1,3 +1,3 @@
-Source: unicorn
-Version: 2017-12-06-bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4
-Description: Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework
+Source: unicorn
+Version: 2017-12-06-bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4-1
+Description: Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework
diff --git a/ports/unicorn/portfile.cmake b/ports/unicorn/portfile.cmake
index a8d4c24dc..d64b2bf4d 100644
--- a/ports/unicorn/portfile.cmake
+++ b/ports/unicorn/portfile.cmake
@@ -1,47 +1,58 @@
-include(vcpkg_common_functions)
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL WindowsStore)
- message(FATAL_ERROR "WindowsStore not supported")
-endif()
-
-vcpkg_from_github(
- OUT_SOURCE_PATH SOURCE_PATH
- REPO unicorn-engine/unicorn
- REF bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4
- SHA512 2edd31097a38d4270ae36f3f54b4c9385e088f85465d3c4fc7cd95162e5d4ba72b8b7d305deeb535c69dcbc15de7364150530887b29b363e087aadacce3f2f41
- HEAD_REF master
-)
-
-if(VCPKG_TARGET_ARCHITECTURE STREQUAL x86)
- set(UNICORN_PLATFORM "Win32")
-elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL x64)
- set(UNICORN_PLATFORM "x64")
-else()
- message(FATAL_ERROR "Unsupported architecture")
-endif()
-
-vcpkg_build_msbuild(
- PROJECT_PATH "${SOURCE_PATH}/msvc/unicorn.sln"
- PLATFORM "${UNICORN_PLATFORM}"
-)
-
-if(VCPKG_CRT_LINKAGE STREQUAL dynamic)
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
-else()
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
- file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
-endif()
-
-file(
- INSTALL "${SOURCE_PATH}/msvc/distro/include/unicorn"
- DESTINATION "${CURRENT_PACKAGES_DIR}/include"
- RENAME "unicorn"
-)
-file(
- INSTALL "${SOURCE_PATH}/COPYING"
- DESTINATION "${CURRENT_PACKAGES_DIR}/share/unicorn"
- RENAME "copyright"
-)
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "WindowsStore not supported")
+endif()
+
+if(VCPKG_CRT_LINKAGE STREQUAL "dynamic" AND VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ message(FATAL_ERROR "unicorn can currently only be built with /MT or /MTd (static CRT linkage)")
+endif()
+
+# Note: this is safe because unicorn is a C library and takes steps to avoid memory allocate/free across the DLL boundary.
+set(VCPKG_CRT_LINKAGE "static")
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO unicorn-engine/unicorn
+ REF bc34c36eaeca0f4fc672015d24ce3efbcc81d6e4
+ SHA512 43694c7dfb0783c1d64236a286b929c9d0eea9d8e18146ad4fb36d7e4faf719e179d7ee36b43e568e4fce779b0f660ed9c1fb417793d6019923cae9538c9355e
+ HEAD_REF master
+)
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(UNICORN_PLATFORM "Win32")
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(UNICORN_PLATFORM "x64")
+else()
+ message(FATAL_ERROR "Unsupported architecture")
+endif()
+
+vcpkg_build_msbuild(
+ PROJECT_PATH "${SOURCE_PATH}/msvc/unicorn.sln"
+ PLATFORM "${UNICORN_PLATFORM}"
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin")
+else()
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Release/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib")
+ file(INSTALL "${SOURCE_PATH}/msvc/${UNICORN_PLATFORM}/Debug/unicorn_static.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib")
+endif()
+
+file(
+ INSTALL "${SOURCE_PATH}/msvc/distro/include/unicorn"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/include"
+ RENAME "unicorn"
+)
+file(
+ INSTALL "${SOURCE_PATH}/COPYING"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/unicorn"
+ RENAME "copyright"
+)
+file(
+ INSTALL "${SOURCE_PATH}/COPYING_GLIB"
+ DESTINATION "${CURRENT_PACKAGES_DIR}/share/unicorn"
+)