From 0e50d7019929bcf9d4fabe58f9c8b1be467f5471 Mon Sep 17 00:00:00 2001 From: Silvio Date: Mon, 12 Jun 2017 17:26:30 +0200 Subject: Fix protobuf dynamic build Backport https://github.com/google/protobuf/pull/3216 --- ports/protobuf/0001-fix-missing-export.patch | 13 +++++++++++++ ports/protobuf/portfile.cmake | 9 +++++++++ 2 files changed, 22 insertions(+) create mode 100644 ports/protobuf/0001-fix-missing-export.patch diff --git a/ports/protobuf/0001-fix-missing-export.patch b/ports/protobuf/0001-fix-missing-export.patch new file mode 100644 index 000000000..c7d5ff6c8 --- /dev/null +++ b/ports/protobuf/0001-fix-missing-export.patch @@ -0,0 +1,13 @@ +diff --git a/src/google/protobuf/generated_message_util.h b/src/google/protobuf/generated_message_util.h +index 4417446..a7154b4 100644 +--- a/src/google/protobuf/generated_message_util.h ++++ b/src/google/protobuf/generated_message_util.h +@@ -164,7 +164,7 @@ class ExplicitlyConstructed { + + // Default empty string object. Don't use this directly. Instead, call + // GetEmptyString() to get the reference. +-extern ExplicitlyConstructed< ::std::string> fixed_address_empty_string; ++LIBPROTOBUF_EXPORT extern ExplicitlyConstructed< ::std::string> fixed_address_empty_string; + LIBPROTOBUF_EXPORT extern ProtobufOnceType empty_string_once_init_; + LIBPROTOBUF_EXPORT void InitEmptyString(); + diff --git a/ports/protobuf/portfile.cmake b/ports/protobuf/portfile.cmake index c053e1bb5..852086ff5 100644 --- a/ports/protobuf/portfile.cmake +++ b/ports/protobuf/portfile.cmake @@ -17,6 +17,15 @@ set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}) set(TOOL_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION}-win32) vcpkg_extract_source_archive(${ARCHIVE_FILE}) + +# Patch to fix the missing export of fixed_address_empty_string, +# see https://github.com/google/protobuf/pull/3216 +vcpkg_apply_patches( + SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/protobuf-${PROTOBUF_VERSION} + PATCHES "${CMAKE_CURRENT_LIST_DIR}/0001-fix-missing-export.patch" +) + + vcpkg_extract_source_archive(${TOOL_ARCHIVE_FILE} ${TOOL_PATH}) if (VCPKG_LIBRARY_LINKAGE STREQUAL dynamic) -- cgit v1.2.3