vcpkg-ports/pkcs11-helper: Make compatible with mingw build

Annoyingly this requires custom vcpkg triplets because
the mingw toolchain definition and the vcpkg_configure_make
function use incompatible default triplets (-pc-mingw32 vs
-w64-mingw32).

Change-Id: I4e671938220e9bfd798f91819f34b6f8ceaa45f5
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
Acked-by: Lev Stipakov <lstipakov@gmail.com>
Message-Id: <20230331154214.613245-2-frank@lichtenheld.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg26572.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Frank Lichtenheld 2023-03-31 17:42:12 +02:00 committed by Gert Doering
parent 8d38ed4817
commit 17746e53f6
4 changed files with 88 additions and 7 deletions

View file

@ -0,0 +1,46 @@
From 7171396a151a2edb3474c7a321b7ae4ff7e171fc Mon Sep 17 00:00:00 2001
From: Frank Lichtenheld <frank@lichtenheld.com>
Date: Wed, 29 Mar 2023 12:44:44 +0200
Subject: [PATCH] Allow the build to succeed if configured with
--disable-shared
Do not try to install a file that does not exist.
Signed-off-by: Frank Lichtenheld <frank@lichtenheld.com>
---
configure.ac | 1 +
lib/Makefile.am | 2 ++
2 files changed, 3 insertions(+)
diff --git a/configure.ac b/configure.ac
index a7e9760..f154ae3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -581,6 +581,7 @@ AC_SUBST([LIBPKCS11_HELPER_LT_AGE])
AC_SUBST([LIBPKCS11_HELPER_LT_OLDEST])
AC_SUBST([WIN_LIBPREFIX])
AC_SUBST([PKCS11H_FEATURES])
+AM_CONDITIONAL([ENABLE_SHARED], [test "${enable_shared}" = "yes" ])
AM_CONDITIONAL([WIN32], [test "${WIN32}" = "yes"])
AM_CONDITIONAL([CYGWIN], [test "${CYGWIN}" = "yes"])
AM_CONDITIONAL([ENABLE_DOC], [test "${enable_doc}" = "yes"])
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 31b928f..3cba32f 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -128,10 +128,12 @@ if ENABLE_PKCS11H_TOKEN
endif
if WIN32
+if ENABLE_SHARED
mylibdir=$(libdir)
mylib_DATA=.libs/@WIN_LIBPREFIX@pkcs11-helper-@LIBPKCS11_HELPER_LT_OLDEST@.dll.def
.libs/@WIN_LIBPREFIX@pkcs11-helper-@LIBPKCS11_HELPER_LT_OLDEST@.dll.def: libpkcs11-helper.la
endif
+endif
RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS)
--
2.34.1

View file

@ -13,24 +13,43 @@ vcpkg_extract_source_archive_ex(
PATCHES
0001-nmake-compatibility-with-vcpkg-nmake.patch
0002-config-w32-vc.h.in-indicate-OpenSSL.patch
0001-Allow-the-build-to-succeed-if-configured-with-disabl.patch
pkcs11-helper-001-RFC7512.patch
pkcs11-helper-002-dynamic_loader_flags.patch
)
vcpkg_build_nmake(
if(VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW)
vcpkg_build_nmake(
SOURCE_PATH ${SOURCE_PATH}
PROJECT_SUBPATH lib
PROJECT_NAME Makefile.w32-vc
OPTIONS
OPENSSL=1
OPENSSL_HOME=${CURRENT_PACKAGES_DIR}/../openssl_${TARGET_TRIPLET}
)
)
file(INSTALL ${SOURCE_PATH}/include/pkcs11-helper-1.0 DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/pkcs11-helper.dll.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib/libpkcs11-helper-1.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${SOURCE_PATH}/include/pkcs11-helper-1.0 DESTINATION ${CURRENT_PACKAGES_DIR}/include/)
else()
find_program(man_to_html man2html REQUIRED)
vcpkg_configure_make(
SOURCE_PATH ${SOURCE_PATH}
OPTIONS --disable-crypto-engine-gnutls --disable-crypto-engine-nss
--disable-crypto-engine-polarssl --disable-crypto-engine-mbedtls
)
vcpkg_install_make()
vcpkg_fixup_pkgconfig()
file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/share")
endif()
vcpkg_copy_pdbs()
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)

View file

@ -0,0 +1,8 @@
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)
set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
set(VCPKG_MAKE_BUILD_TRIPLET --host=x86_64-w64-mingw32)

View file

@ -0,0 +1,8 @@
set(VCPKG_TARGET_ARCHITECTURE x86)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_ENV_PASSTHROUGH PATH)
set(VCPKG_CMAKE_SYSTEM_NAME MinGW)
set(VCPKG_MAKE_BUILD_TRIPLET --host=i686-w64-mingw32)