| Index: third_party/protobuf/patches/03_componentize_protobuf_lite.patch
|
| diff --git a/third_party/protobuf/patches/03_componentize_protobuf_lite.patch b/third_party/protobuf/patches/03_componentize_protobuf_lite.patch
|
| deleted file mode 100644
|
| index dc5f77ddb4e558aa3eb331e42852d398316d1566..0000000000000000000000000000000000000000
|
| --- a/third_party/protobuf/patches/03_componentize_protobuf_lite.patch
|
| +++ /dev/null
|
| @@ -1,253 +0,0 @@
|
| -diff --git a/third_party/protobuf/BUILD.gn b/third_party/protobuf/BUILD.gn
|
| -index aaeae89..bcfdca1 100644
|
| ---- a/third_party/protobuf/BUILD.gn
|
| -+++ b/third_party/protobuf/BUILD.gn
|
| -@@ -18,6 +18,12 @@ config("protobuf_config") {
|
| - }
|
| - }
|
| -
|
| -+if (is_component_build) {
|
| -+ config("protobuf_use_dlls") {
|
| -+ defines = [ "PROTOBUF_USE_DLLS" ]
|
| -+ }
|
| -+}
|
| -+
|
| - # This config should be applied to targets using generated code from the proto
|
| - # compiler. It sets up the include directories properly.
|
| - config("using_proto") {
|
| -@@ -50,6 +56,7 @@ protobuf_lite_sources = [
|
| - "src/google/protobuf/message.h",
|
| - "src/google/protobuf/message_lite.cc",
|
| - "src/google/protobuf/message_lite.h",
|
| -+ "src/google/protobuf/metadata.cc",
|
| - "src/google/protobuf/metadata.h",
|
| - "src/google/protobuf/repeated_field.cc",
|
| - "src/google/protobuf/repeated_field.h",
|
| -@@ -125,7 +132,7 @@ if (is_win) {
|
| - ]
|
| - }
|
| -
|
| --source_set("protobuf_lite") {
|
| -+component("protobuf_lite") {
|
| - sources = protobuf_lite_sources
|
| -
|
| - configs -= [ "//build/config/compiler:chromium_code" ]
|
| -@@ -141,6 +148,12 @@ source_set("protobuf_lite") {
|
| - ]
|
| -
|
| - cflags = protobuf_lite_cflags
|
| -+
|
| -+ # Required for component builds. See http://crbug.com/172800.
|
| -+ if (is_component_build) {
|
| -+ public_configs += [ ":protobuf_use_dlls" ]
|
| -+ defines = [ "LIBPROTOBUF_EXPORTS" ]
|
| -+ }
|
| - }
|
| -
|
| - # This is the full, heavy protobuf lib that's needed for c++ .protos that don't
|
| -@@ -151,7 +164,8 @@ source_set("protobuf_full") {
|
| - # Prevent people from depending on this outside our file.
|
| - visibility = [ ":*" ]
|
| -
|
| -- sources = [
|
| -+ sources = protobuf_lite_sources
|
| -+ sources += [
|
| - "src/google/protobuf/any.cc",
|
| - "src/google/protobuf/any.h",
|
| - "src/google/protobuf/any.pb.cc",
|
| -@@ -281,10 +295,6 @@ source_set("protobuf_full") {
|
| - ]
|
| -
|
| - cflags = protobuf_lite_cflags
|
| --
|
| -- deps = [
|
| -- ":protobuf_lite",
|
| -- ]
|
| - }
|
| -
|
| - # Only compile the compiler for the host architecture.
|
| -diff --git a/third_party/protobuf/README.chromium b/third_party/protobuf/README.chromium
|
| -index aa428ad..04d1a9b 100644
|
| ---- a/third_party/protobuf/README.chromium
|
| -+++ b/third_party/protobuf/README.chromium
|
| -@@ -28,6 +28,7 @@ Steps used to create the current version:
|
| - patch and rebuild protoc; look at step (3) below and the
|
| - generate_descriptor_proto.sh script in the protobuf root directory for a
|
| - guide. Based on http://crrev.com/62331 and http://crrev.com/173228 .
|
| -+ 03: Convert protobuf_lite to a component. Based on http://crrev.com/179806 .
|
| - (3) Generate descriptor_pb2.py using something like the following steps. Make
|
| - sure you've regenerated your buildfiles and will build protoc from the
|
| - newly-modified sources above.
|
| -diff --git a/third_party/protobuf/protobuf.gyp b/third_party/protobuf/protobuf.gyp
|
| -index 9fba350..c7aab98 100644
|
| ---- a/third_party/protobuf/protobuf.gyp
|
| -+++ b/third_party/protobuf/protobuf.gyp
|
| -@@ -94,11 +94,21 @@
|
| - # to your .proto file.
|
| - {
|
| - 'target_name': 'protobuf_lite',
|
| -- 'type': 'static_library',
|
| -+ 'type': '<(component)',
|
| - 'toolsets': ['host', 'target'],
|
| - 'includes': [
|
| - 'protobuf_lite.gypi',
|
| - ],
|
| -+ # Required for component builds. See http://crbug.com/172800.
|
| -+ 'defines': [
|
| -+ 'LIBPROTOBUF_EXPORTS',
|
| -+ 'PROTOBUF_USE_DLLS',
|
| -+ ],
|
| -+ 'direct_dependent_settings': {
|
| -+ 'defines': [
|
| -+ 'PROTOBUF_USE_DLLS',
|
| -+ ],
|
| -+ },
|
| - },
|
| - # This is the full, heavy protobuf lib that's needed for c++ .protos
|
| - # that don't specify the LITE_RUNTIME option. The protocol
|
| -@@ -109,6 +119,9 @@
|
| - 'target_name': 'protobuf_full_do_not_use',
|
| - 'type': 'static_library',
|
| - 'toolsets': ['host','target'],
|
| -+ 'includes': [
|
| -+ 'protobuf_lite.gypi',
|
| -+ ],
|
| - 'sources': [
|
| - 'src/google/protobuf/any.cc',
|
| - 'src/google/protobuf/any.h',
|
| -@@ -224,12 +237,6 @@
|
| - 'src/google/protobuf/wrappers.pb.cc',
|
| - 'src/google/protobuf/wrappers.pb.h',
|
| - ],
|
| -- 'dependencies': [
|
| -- 'protobuf_lite',
|
| -- ],
|
| -- 'export_dependent_settings': [
|
| -- 'protobuf_lite',
|
| -- ],
|
| - },
|
| - {
|
| - 'target_name': 'protoc',
|
| -diff --git a/third_party/protobuf/protobuf_lite.gypi b/third_party/protobuf/protobuf_lite.gypi
|
| -index 6415ab2..4d7007a 100644
|
| ---- a/third_party/protobuf/protobuf_lite.gypi
|
| -+++ b/third_party/protobuf/protobuf_lite.gypi
|
| -@@ -26,6 +26,7 @@
|
| - 'src/google/protobuf/message.h',
|
| - 'src/google/protobuf/message_lite.cc',
|
| - 'src/google/protobuf/message_lite.h',
|
| -+ 'src/google/protobuf/metadata.cc',
|
| - 'src/google/protobuf/metadata.h',
|
| - 'src/google/protobuf/repeated_field.cc',
|
| - 'src/google/protobuf/repeated_field.h',
|
| -diff --git a/third_party/protobuf/src/google/protobuf/metadata.cc b/third_party/protobuf/src/google/protobuf/metadata.cc
|
| -new file mode 100644
|
| -index 0000000..99d2cf9
|
| ---- /dev/null
|
| -+++ b/third_party/protobuf/src/google/protobuf/metadata.cc
|
| -@@ -0,0 +1,42 @@
|
| -+// Protocol Buffers - Google's data interchange format
|
| -+// Copyright 2015 Google Inc. All rights reserved.
|
| -+// https://developers.google.com/protocol-buffers/
|
| -+//
|
| -+// Redistribution and use in source and binary forms, with or without
|
| -+// modification, are permitted provided that the following conditions are
|
| -+// met:
|
| -+//
|
| -+// * Redistributions of source code must retain the above copyright
|
| -+// notice, this list of conditions and the following disclaimer.
|
| -+// * Redistributions in binary form must reproduce the above
|
| -+// copyright notice, this list of conditions and the following disclaimer
|
| -+// in the documentation and/or other materials provided with the
|
| -+// distribution.
|
| -+// * Neither the name of Google Inc. nor the names of its
|
| -+// contributors may be used to endorse or promote products derived from
|
| -+// this software without specific prior written permission.
|
| -+//
|
| -+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
| -+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
| -+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
| -+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
| -+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
| -+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
| -+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
| -+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
| -+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
| -+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
| -+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
| -+
|
| -+#include <google/protobuf/metadata.h>
|
| -+
|
| -+namespace google {
|
| -+namespace protobuf {
|
| -+namespace internal {
|
| -+
|
| -+InternalMetadataWithArena::InternalMetadataWithArena(Arena* arena)
|
| -+ : ptr_ (arena) {}
|
| -+
|
| -+} // namespace internal
|
| -+} // namespace protobuf
|
| -+} // namespace google
|
| -diff --git a/third_party/protobuf/src/google/protobuf/metadata.h b/third_party/protobuf/src/google/protobuf/metadata.h
|
| -index 30b2a6e..85065f0 100644
|
| ---- a/third_party/protobuf/src/google/protobuf/metadata.h
|
| -+++ b/third_party/protobuf/src/google/protobuf/metadata.h
|
| -@@ -59,8 +59,7 @@ namespace internal {
|
| - class LIBPROTOBUF_EXPORT InternalMetadataWithArena {
|
| - public:
|
| - InternalMetadataWithArena() : ptr_(NULL) {}
|
| -- explicit InternalMetadataWithArena(Arena* arena)
|
| -- : ptr_ (arena) {}
|
| -+ explicit InternalMetadataWithArena(Arena* arena);
|
| -
|
| - ~InternalMetadataWithArena() {
|
| - if (have_unknown_fields() && arena() == NULL) {
|
| -diff --git a/third_party/protobuf/src/google/protobuf/stubs/port.h b/third_party/protobuf/src/google/protobuf/stubs/port.h
|
| -index da695ff..a9f5fd9 100644
|
| ---- a/third_party/protobuf/src/google/protobuf/stubs/port.h
|
| -+++ b/third_party/protobuf/src/google/protobuf/stubs/port.h
|
| -@@ -63,18 +63,33 @@
|
| - #define PROTOBUF_LITTLE_ENDIAN 1
|
| - #endif
|
| - #endif
|
| --#if defined(_MSC_VER) && defined(PROTOBUF_USE_DLLS)
|
| -- #ifdef LIBPROTOBUF_EXPORTS
|
| -- #define LIBPROTOBUF_EXPORT __declspec(dllexport)
|
| -- #else
|
| -- #define LIBPROTOBUF_EXPORT __declspec(dllimport)
|
| -+// The macros defined below are required in order to make protobuf_lite a
|
| -+// component on all platforms. See http://crbug.com/172800.
|
| -+#if defined(COMPONENT_BUILD) && defined(PROTOBUF_USE_DLLS)
|
| -+ #if defined(_MSC_VER)
|
| -+ #ifdef LIBPROTOBUF_EXPORTS
|
| -+ #define LIBPROTOBUF_EXPORT __declspec(dllexport)
|
| -+ #else
|
| -+ #define LIBPROTOBUF_EXPORT __declspec(dllimport)
|
| -+ #endif
|
| -+ #ifdef LIBPROTOC_EXPORTS
|
| -+ #define LIBPROTOC_EXPORT __declspec(dllexport)
|
| -+ #else
|
| -+ #define LIBPROTOC_EXPORT __declspec(dllimport)
|
| -+ #endif
|
| -+ #else // defined(_MSC_VER)
|
| -+ #ifdef LIBPROTOBUF_EXPORTS
|
| -+ #define LIBPROTOBUF_EXPORT __attribute__((visibility("default")))
|
| -+ #else
|
| -+ #define LIBPROTOBUF_EXPORT
|
| -+ #endif
|
| -+ #ifdef LIBPROTOC_EXPORTS
|
| -+ #define LIBPROTOC_EXPORT __attribute__((visibility("default")))
|
| -+ #else
|
| -+ #define LIBPROTOC_EXPORT
|
| -+ #endif
|
| - #endif
|
| -- #ifdef LIBPROTOC_EXPORTS
|
| -- #define LIBPROTOC_EXPORT __declspec(dllexport)
|
| -- #else
|
| -- #define LIBPROTOC_EXPORT __declspec(dllimport)
|
| -- #endif
|
| --#else
|
| -+#else // defined(COMPONENT_BUILD) && defined(PROTOBUF_USE_DLLS)
|
| - #define LIBPROTOBUF_EXPORT
|
| - #define LIBPROTOC_EXPORT
|
| - #endif
|
|
|