From 8766979444d7652b5c170b487ac39391d85b292e Mon Sep 17 00:00:00 2001 From: Robert Schumacher Date: Fri, 8 Dec 2017 23:54:41 -0800 Subject: [PATCH] [unicorn] Adjust handling of CRT and LIBRARY LINKAGE. Reformat to LF. --- ports/unicorn/CONTROL | 6 +- ports/unicorn/portfile.cmake | 105 +++++++++++++++++++---------------- 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" +)