aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLong Nguyen <nguyen.long.908132@gmail.com>2020-11-10 05:34:34 +0700
committerGitHub <noreply@github.com>2020-11-09 14:34:34 -0800
commit1b59ca067cad83c9a51fddbb97230447b61eb5ad (patch)
treecedced7c1f285130ec2ca19abac468ca887aa47d
parent1b5e00a3e3acd51877cd0966f60fa78458c037e8 (diff)
downloadvcpkg-1b59ca067cad83c9a51fddbb97230447b61eb5ad.tar.gz
vcpkg-1b59ca067cad83c9a51fddbb97230447b61eb5ad.zip
[libffi] mingw support (#14407)
-rw-r--r--ports/libffi/CMakeLists.txt24
-rw-r--r--ports/libffi/CONTROL2
-rw-r--r--ports/libffi/portfile.cmake6
3 files changed, 27 insertions, 5 deletions
diff --git a/ports/libffi/CMakeLists.txt b/ports/libffi/CMakeLists.txt
index 693fcc935..a021c9ffd 100644
--- a/ports/libffi/CMakeLists.txt
+++ b/ports/libffi/CMakeLists.txt
@@ -161,15 +161,31 @@ elseif("${TARGET}" STREQUAL "X86_64")
add_assembly(src/x86/unix64.S)
add_assembly(src/x86/win64.S)
elseif("${TARGET}" STREQUAL "X86_WIN32")
- add_assembly(src/x86/sysv_intel.S)
+ if(MSVC)
+ add_assembly(src/x86/sysv_intel.S)
+ else()
+ add_assembly(src/x86/sysv.S)
+ endif()
elseif("${TARGET}" STREQUAL "X86_WIN64")
- add_assembly(src/x86/win64_intel.S)
+ if(MSVC)
+ add_assembly(src/x86/win64_intel.S)
+ else()
+ add_assembly(src/x86/win64.S)
+ endif()
elseif("${TARGET}" STREQUAL "ARM_WIN32")
- add_assembly(src/arm/sysv_msvc_arm32.S)
+ if(MSVC)
+ add_assembly(src/arm/sysv_msvc_arm32.S)
+ else()
+ add_assembly(src/arm/sysv.S)
+ endif()
elseif("${TARGET}" STREQUAL "ARM")
add_assembly(src/arm/sysv.S)
elseif("${TARGET}" STREQUAL "ARM_WIN64")
- add_assembly(src/aarch64/win64_armasm.S)
+ if(MSVC)
+ add_assembly(src/aarch64/win64_armasm.S)
+ else()
+ add_assembly(src/aarch64/sysv.S)
+ endif()
elseif("${TARGET}" STREQUAL "ARM64")
add_assembly(src/aarch64/sysv.S)
else()
diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL
index 6f1154eda..477587af2 100644
--- a/ports/libffi/CONTROL
+++ b/ports/libffi/CONTROL
@@ -1,5 +1,5 @@
Source: libffi
Version: 3.3
-Port-Version: 5
+Port-Version: 6
Homepage: https://github.com/libffi/libffi
Description: Portable, high level programming interface to various calling conventions
diff --git a/ports/libffi/portfile.cmake b/ports/libffi/portfile.cmake
index 7748d1cb6..da39de67d 100644
--- a/ports/libffi/portfile.cmake
+++ b/ports/libffi/portfile.cmake
@@ -47,6 +47,12 @@ endif()
vcpkg_copy_pdbs()
vcpkg_fixup_cmake_targets()
+if(VCPKG_TARGET_IS_MINGW)
+ vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libffi.pc
+ "-lffi" "-llibffi")
+ vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libffi.pc
+ "-lffi" "-llibffi")
+endif()
vcpkg_fixup_pkgconfig()
if (VCPKG_LIBRARY_LINKAGE STREQUAL static)