From e6d81f2157f37ec0a40b97c5cc3e3e6ca208c7f0 Mon Sep 17 00:00:00 2001 From: toge Date: Tue, 21 Oct 2025 01:02:59 +0900 Subject: [PATCH] [cryptopp] fix pem-pack feature (#47874) --- ports/cryptopp/cmake-support-pem-pack.patch | 33 +++++++++++++++++++++ ports/cryptopp/portfile.cmake | 10 ++++++- ports/cryptopp/vcpkg.json | 2 +- versions/baseline.json | 2 +- versions/c-/cryptopp.json | 5 ++++ 5 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 ports/cryptopp/cmake-support-pem-pack.patch diff --git a/ports/cryptopp/cmake-support-pem-pack.patch b/ports/cryptopp/cmake-support-pem-pack.patch new file mode 100644 index 0000000000..4dac21819a --- /dev/null +++ b/ports/cryptopp/cmake-support-pem-pack.patch @@ -0,0 +1,33 @@ +diff --git a/cryptopp/sources.cmake b/cryptopp/sources.cmake +index 7918f03..58d74e2 100644 +--- a/cryptopp/sources.cmake ++++ b/cryptopp/sources.cmake +@@ -182,6 +182,14 @@ set(cryptopp_SOURCES + zlib.cpp + ) + ++if (CRYPTOPP_PEM_PACK) ++ list(APPEND cryptopp_SOURCES ++ pem-com.cpp ++ pem-rd.cpp ++ pem-wr.cpp ++ ) ++endif() ++ + # ***** Library headers ***** + set(cryptopp_HEADERS + 3way.h +@@ -374,6 +382,13 @@ set(cryptopp_HEADERS + zlib.h + ) + ++if (CRYPTOPP_PEM_PACK) ++ list(APPEND cryptopp_HEADERS ++ pem-com.h ++ pem.h ++ ) ++endif() ++ + # ***** Test sources ***** + set(cryptopp_SOURCES_TEST + # adhoc.cpp diff --git a/ports/cryptopp/portfile.cmake b/ports/cryptopp/portfile.cmake index 70df01300f..7368f76b97 100644 --- a/ports/cryptopp/portfile.cmake +++ b/ports/cryptopp/portfile.cmake @@ -7,6 +7,8 @@ vcpkg_from_github( REF "CRYPTOPP_${CRYPTOPP_VERSION}" SHA512 3ec33b107ab627a514e1ebbc4b6522ee8552525f36730d9b5feb85e61ba7fc24fd36eb6050e328c6789ff60d47796beaa8eebf7dead787a34395294fae9bb733 HEAD_REF master + PATCHES + cmake-support-pem-pack.patch ) vcpkg_from_github( @@ -26,6 +28,11 @@ file(COPY "${CMAKE_SOURCE_PATH}/test" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/cryptopp/cryptoppConfig.cmake" DESTINATION "${SOURCE_PATH}") file(COPY "${CMAKE_SOURCE_PATH}/CMakeLists.txt" DESTINATION "${SOURCE_PATH}") +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + pem-pack CRYPTOPP_PEM_PACK +) + if("pem-pack" IN_LIST FEATURES) vcpkg_from_github( OUT_SOURCE_PATH PEM_PACK_SOURCE_PATH @@ -39,7 +46,7 @@ if("pem-pack" IN_LIST FEATURES) ${PEM_PACK_SOURCE_PATH}/*.h ${PEM_PACK_SOURCE_PATH}/*.cpp ) - file(INSTALL ${PEM_PACK_FILES} DESTINATION "${CURRENT_PACKAGES_DIR}/include/${PORT}") + file(COPY ${PEM_PACK_FILES} DESTINATION ${SOURCE_PATH}) endif() # disable assembly on ARM Windows to fix broken build @@ -66,6 +73,7 @@ vcpkg_cmake_configure( -DDISABLE_ASM=${CRYPTOPP_DISABLE_ASM} -DUSE_INTERMEDIATE_OBJECTS_TARGET=OFF # Not required when we build static only -DCMAKE_POLICY_DEFAULT_CMP0063=NEW # Honor "_VISIBILITY_PRESET" properties + ${FEATURE_OPTIONS} MAYBE_UNUSED_VARIABLES BUILD_STATIC USE_INTERMEDIATE_OBJECTS_TARGET diff --git a/ports/cryptopp/vcpkg.json b/ports/cryptopp/vcpkg.json index 7dc2c2de6b..1b847b9bfc 100644 --- a/ports/cryptopp/vcpkg.json +++ b/ports/cryptopp/vcpkg.json @@ -1,7 +1,7 @@ { "name": "cryptopp", "version": "8.9.0", - "port-version": 1, + "port-version": 2, "description": "Crypto++ is a free C++ class library of cryptographic schemes.", "homepage": "https://github.com/weidai11/cryptopp", "license": "BSL-1.0", diff --git a/versions/baseline.json b/versions/baseline.json index b33bc5baa2..ae7f42ebad 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -2170,7 +2170,7 @@ }, "cryptopp": { "baseline": "8.9.0", - "port-version": 1 + "port-version": 2 }, "cserialport": { "baseline": "4.3.3", diff --git a/versions/c-/cryptopp.json b/versions/c-/cryptopp.json index 5e3444cf29..4509fab0be 100644 --- a/versions/c-/cryptopp.json +++ b/versions/c-/cryptopp.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "7a43c1863687809d90c65c768b70eb0add5aacc6", + "version": "8.9.0", + "port-version": 2 + }, { "git-tree": "d0e6dbcd3cb14acffac5ce963dc8fcd1178101fc", "version": "8.9.0",