From 85a86182f9f317ab288123103bef91b446fa6a2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Fri, 26 Jun 2020 16:53:57 +0200 Subject: [PATCH 1/2] [libffi] Add pkgconfig file - Configure and add the libffi.pc file. - Furthermore, enable the check for same 32/64bit-ness in libffiConfigVersion.cmake again, which had caused issues in the past with newer versions of glib using meson build, e.g. when building for x86-windows target on an x64-windows host. Now, libffi is found by current glib (e.g. 2.64.3) during meson build using the libffi pkgconfig file. --- ports/libffi/CMakeLists.txt | 2 -- ports/libffi/CONTROL | 4 ++-- ports/libffi/portfile.cmake | 22 +++++++++++++++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/ports/libffi/CMakeLists.txt b/ports/libffi/CMakeLists.txt index c85e6382c57b9e..d7c741859a1165 100644 --- a/ports/libffi/CMakeLists.txt +++ b/ports/libffi/CMakeLists.txt @@ -186,8 +186,6 @@ include(CMakePackageConfigHelpers) configure_package_config_file(${PROJECT_NAME}Config.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" INSTALL_DESTINATION share/${PROJECT_NAME}) -# Disable check for same 32/64bit-ness in libffiConfigVersion.cmake by setting CMAKE_SIZEOF_VOID_P -set (CMAKE_SIZEOF_VOID_P "") write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake VERSION ${VERSION} diff --git a/ports/libffi/CONTROL b/ports/libffi/CONTROL index 655f6023c83189..95dfbeb56ea68c 100644 --- a/ports/libffi/CONTROL +++ b/ports/libffi/CONTROL @@ -1,4 +1,4 @@ Source: libffi -Version: 3.3-2 +Version: 3.3-3 Homepage: https://github.com/libffi/libffi -Description: Portable, high level programming interface to various calling conventions \ No newline at end of file +Description: Portable, high level programming interface to various calling conventions diff --git a/ports/libffi/portfile.cmake b/ports/libffi/portfile.cmake index 7209ce8d609216..3679e700c6faa4 100644 --- a/ports/libffi/portfile.cmake +++ b/ports/libffi/portfile.cmake @@ -1,3 +1,5 @@ +set(VERSION 3.3) + vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO libffi/libffi @@ -19,8 +21,26 @@ vcpkg_configure_cmake( ) vcpkg_install_cmake() + +# Create pkgconfig file +set(PACKAGE_VERSION ${VERSION}) +set(prefix "${CURRENT_INSTALLED_DIR}") +set(exec_prefix "\${prefix}") +set(libdir "\${prefix}/lib") +set(toolexeclibdir "\${libdir}") +set(includedir "\${prefix}/include") +configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libffi.pc" @ONLY) +# debug +set(prefix "${CURRENT_INSTALLED_DIR}/debug") +set(exec_prefix "\${prefix}") +set(libdir "\${prefix}/lib") +set(toolexeclibdir "\${libdir}") +set(includedir "\${prefix}/../include") +configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libffi.pc" @ONLY) + vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets() +vcpkg_fixup_pkgconfig() if (VCPKG_LIBRARY_LINKAGE STREQUAL static) vcpkg_replace_string(${CURRENT_PACKAGES_DIR}/include/ffi.h @@ -32,4 +52,4 @@ if (VCPKG_LIBRARY_LINKAGE STREQUAL static) ) endif() -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) From f3e29af158f01ba301bfe8aa560c6f04db616b0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= Date: Sat, 27 Jun 2020 07:12:58 +0200 Subject: [PATCH 2/2] Check VCPKG_BUILD_TYPE to handle release/debug --- ports/libffi/portfile.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ports/libffi/portfile.cmake b/ports/libffi/portfile.cmake index 3679e700c6faa4..3033319249ce1a 100644 --- a/ports/libffi/portfile.cmake +++ b/ports/libffi/portfile.cmake @@ -29,14 +29,18 @@ set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(toolexeclibdir "\${libdir}") set(includedir "\${prefix}/include") -configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libffi.pc" @ONLY) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") + configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/libffi.pc" @ONLY) +endif() # debug set(prefix "${CURRENT_INSTALLED_DIR}/debug") set(exec_prefix "\${prefix}") set(libdir "\${prefix}/lib") set(toolexeclibdir "\${libdir}") set(includedir "\${prefix}/../include") -configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libffi.pc" @ONLY) +if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") + configure_file("${SOURCE_PATH}/libffi.pc.in" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/libffi.pc" @ONLY) +endif() vcpkg_copy_pdbs() vcpkg_fixup_cmake_targets()