Match build definitions to v3.13.0.1

This is a downgrade; it allows us to sidestep the ambiguity introduced
in https://github.com/protocolbuffers/protobuf/commit/a6985e5 with the
use of UNLICENSE.

Change-Id: I659f3f77807455644caf4e3bacae6f1a316c500e
diff --git a/BUILD.gn b/BUILD.gn
index f1e5dcb..c8a9a96 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -41,28 +41,17 @@
   cflags = []
 
   if (is_clang) {
-    # These are all needed as of v3.17.3.
+    # These are all needed as of v3.13.0.1.
     cflags += [
-      "-Wno-conversion",
-      "-Wno-inconsistent-missing-override",
+      "-Wno-deprecated-declarations",
+      "-Wno-float-conversion",
+      "-Wno-implicit-float-conversion",
+      "-Wno-implicit-int-conversion",
       "-Wno-missing-field-initializers",
+      "-Wno-shorten-64-to-32",
       "-Wno-sign-compare",
-      "-Wno-unused-function",
+      "-Wno-unneeded-internal-declaration",
       "-Wno-unused-private-field",
-
-      # REMOVE THIS AFTER NEXT RELEASE.
-      #
-      # ../../third_party/protobuf/src/google/protobuf/descriptor.cc:1024:9: error: passing variable 'unknown_enum_values_by_number_' by reference requires holding mutex 'unknown_enum_values_mu_' [-Werror,-Wthread-safety-reference]
-      #        unknown_enum_values_by_number_, std::make_pair(parent, number));
-      #        ^
-      # ../../third_party/protobuf/src/google/protobuf/descriptor.cc:1034:9: error: passing variable 'unknown_enum_values_by_number_' by reference requires holding mutex 'unknown_enum_values_mu_' [-Werror,-Wthread-safety-reference]
-      #        unknown_enum_values_by_number_, std::make_pair(parent, number));
-      #        ^
-      # 2 errors generated.
-      #
-      # This was fixed in https://github.com/protocolbuffers/protobuf/commit/9223147 by adding the
-      # missing capability annotations.
-      "-Wno-thread-safety-reference",
     ]
   }
 }
@@ -76,228 +65,332 @@
   ]
 }
 
-protobuf_lite_sources = [
-  "src/google/protobuf/any.h",
-  "src/google/protobuf/any_lite.cc",
-  "src/google/protobuf/arena.cc",
-  "src/google/protobuf/arena.h",
-  "src/google/protobuf/arenastring.cc",
-  "src/google/protobuf/arenastring.h",
-  "src/google/protobuf/extension_set.cc",
-  "src/google/protobuf/extension_set.h",
-  "src/google/protobuf/field_access_listener.cc",
-  "src/google/protobuf/field_access_listener.h",
-  "src/google/protobuf/generated_message_util.cc",
-  "src/google/protobuf/generated_message_util.h",
-  "src/google/protobuf/implicit_weak_message.cc",
-  "src/google/protobuf/implicit_weak_message.h",
-  "src/google/protobuf/io/coded_stream.cc",
-  "src/google/protobuf/io/coded_stream.h",
-  "src/google/protobuf/io/coded_stream_inl.h",
-  "src/google/protobuf/io/strtod.cc",
-  "src/google/protobuf/io/strtod.h",
-  "src/google/protobuf/io/zero_copy_stream.cc",
-  "src/google/protobuf/io/zero_copy_stream.h",
-  "src/google/protobuf/io/zero_copy_stream_impl.cc",
-  "src/google/protobuf/io/zero_copy_stream_impl.h",
-  "src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
-  "src/google/protobuf/io/zero_copy_stream_impl_lite.h",
-  "src/google/protobuf/map.cc",
-  "src/google/protobuf/map.h",
-  "src/google/protobuf/map_entry_lite.h",
-  "src/google/protobuf/map_field_lite.h",
-  "src/google/protobuf/map_type_handler.h",
-  "src/google/protobuf/message_lite.cc",
-  "src/google/protobuf/message_lite.h",
-  "src/google/protobuf/parse_context.cc",
-  "src/google/protobuf/parse_context.h",
-  "src/google/protobuf/repeated_field.cc",
-  "src/google/protobuf/repeated_field.h",
-  "src/google/protobuf/stubs/atomic_sequence_num.h",
-  "src/google/protobuf/stubs/atomicops.h",
-  "src/google/protobuf/stubs/atomicops_internals_arm64_gcc.h",
-  "src/google/protobuf/stubs/atomicops_internals_arm_gcc.h",
-  "src/google/protobuf/stubs/atomicops_internals_arm_qnx.h",
-  "src/google/protobuf/stubs/atomicops_internals_generic_c11_atomic.h",
-  "src/google/protobuf/stubs/atomicops_internals_generic_gcc.h",
-  "src/google/protobuf/stubs/atomicops_internals_mips_gcc.h",
-  "src/google/protobuf/stubs/atomicops_internals_power.h",
-  "src/google/protobuf/stubs/atomicops_internals_ppc_gcc.h",
-  "src/google/protobuf/stubs/atomicops_internals_solaris.h",
-  "src/google/protobuf/stubs/atomicops_internals_tsan.h",
-  "src/google/protobuf/stubs/bytestream.cc",
-  "src/google/protobuf/stubs/bytestream.h",
-  "src/google/protobuf/stubs/callback.h",
-  "src/google/protobuf/stubs/casts.h",
-  "src/google/protobuf/stubs/common.cc",
-  "src/google/protobuf/stubs/common.h",
-  "src/google/protobuf/stubs/hash.h",
-  "src/google/protobuf/stubs/int128.cc",
-  "src/google/protobuf/stubs/int128.h",
-  "src/google/protobuf/stubs/logging.h",
-  "src/google/protobuf/stubs/macros.h",
-  "src/google/protobuf/stubs/map_util.h",
-  "src/google/protobuf/stubs/mutex.h",
-  "src/google/protobuf/stubs/once.h",
-  "src/google/protobuf/stubs/platform_macros.h",
-  "src/google/protobuf/stubs/port.h",
-  "src/google/protobuf/stubs/scoped_ptr.h",
-  "src/google/protobuf/stubs/shared_ptr.h",
-  "src/google/protobuf/stubs/status.cc",
-  "src/google/protobuf/stubs/status.h",
-  "src/google/protobuf/stubs/status_macros.h",
-  "src/google/protobuf/stubs/statusor.cc",
-  "src/google/protobuf/stubs/statusor.h",
-  "src/google/protobuf/stubs/stl_util.h",
-  "src/google/protobuf/stubs/stringpiece.cc",
-  "src/google/protobuf/stubs/stringpiece.h",
-  "src/google/protobuf/stubs/stringprintf.cc",
-  "src/google/protobuf/stubs/stringprintf.h",
-  "src/google/protobuf/stubs/structurally_valid.cc",
-  "src/google/protobuf/stubs/strutil.cc",
-  "src/google/protobuf/stubs/strutil.h",
-  "src/google/protobuf/stubs/template_util.h",
-  "src/google/protobuf/stubs/time.cc",
-  "src/google/protobuf/stubs/time.h",
-  "src/google/protobuf/stubs/type_traits.h",
-  "src/google/protobuf/wire_format_lite.cc",
-  "src/google/protobuf/wire_format_lite.h",
-  "src/google/protobuf/wire_format_lite_inl.h",
-]
-
 static_library("protobuf_lite") {
-  sources = protobuf_lite_sources
+  sources = [
+    "src/google/protobuf/any_lite.cc",
+    "src/google/protobuf/arena.cc",
+    "src/google/protobuf/extension_set.cc",
+    "src/google/protobuf/generated_enum_util.cc",
+    "src/google/protobuf/generated_message_table_driven_lite.cc",
+    "src/google/protobuf/generated_message_util.cc",
+    "src/google/protobuf/implicit_weak_message.cc",
+    "src/google/protobuf/io/coded_stream.cc",
+    "src/google/protobuf/io/io_win32.cc",
+    "src/google/protobuf/io/strtod.cc",
+    "src/google/protobuf/io/zero_copy_stream.cc",
+    "src/google/protobuf/io/zero_copy_stream_impl.cc",
+    "src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
+    "src/google/protobuf/message_lite.cc",
+    "src/google/protobuf/parse_context.cc",
+    "src/google/protobuf/repeated_field.cc",
+    "src/google/protobuf/stubs/bytestream.cc",
+    "src/google/protobuf/stubs/common.cc",
+    "src/google/protobuf/stubs/int128.cc",
+    "src/google/protobuf/stubs/status.cc",
+    "src/google/protobuf/stubs/statusor.cc",
+    "src/google/protobuf/stubs/stringpiece.cc",
+    "src/google/protobuf/stubs/stringprintf.cc",
+    "src/google/protobuf/stubs/structurally_valid.cc",
+    "src/google/protobuf/stubs/strutil.cc",
+    "src/google/protobuf/stubs/time.cc",
+    "src/google/protobuf/wire_format_lite.cc",
+  ]
+
+  # git ls-files -- ':!*/compiler/*' ':!*/testing/*' ':!*/util/*' 'src/google/protobuf/*.h' | sed 's/^/"/' | sed 's/$/",/'
+  public = [
+    "src/google/protobuf/any.h",
+    "src/google/protobuf/any.pb.h",
+    "src/google/protobuf/api.pb.h",
+    "src/google/protobuf/arena.h",
+    "src/google/protobuf/arena_impl.h",
+    "src/google/protobuf/arena_test_util.h",
+    "src/google/protobuf/arenastring.h",
+    "src/google/protobuf/descriptor.h",
+    "src/google/protobuf/descriptor.pb.h",
+    "src/google/protobuf/descriptor_database.h",
+    "src/google/protobuf/duration.pb.h",
+    "src/google/protobuf/dynamic_message.h",
+    "src/google/protobuf/empty.pb.h",
+    "src/google/protobuf/extension_set.h",
+    "src/google/protobuf/extension_set_inl.h",
+    "src/google/protobuf/field_mask.pb.h",
+    "src/google/protobuf/generated_enum_reflection.h",
+    "src/google/protobuf/generated_enum_util.h",
+    "src/google/protobuf/generated_message_reflection.h",
+    "src/google/protobuf/generated_message_table_driven.h",
+    "src/google/protobuf/generated_message_table_driven_lite.h",
+    "src/google/protobuf/generated_message_util.h",
+    "src/google/protobuf/has_bits.h",
+    "src/google/protobuf/implicit_weak_message.h",
+    "src/google/protobuf/inlined_string_field.h",
+    "src/google/protobuf/io/coded_stream.h",
+    "src/google/protobuf/io/gzip_stream.h",
+    "src/google/protobuf/io/io_win32.h",
+    "src/google/protobuf/io/package_info.h",
+    "src/google/protobuf/io/printer.h",
+    "src/google/protobuf/io/strtod.h",
+    "src/google/protobuf/io/tokenizer.h",
+    "src/google/protobuf/io/zero_copy_stream.h",
+    "src/google/protobuf/io/zero_copy_stream_impl.h",
+    "src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+    "src/google/protobuf/map.h",
+    "src/google/protobuf/map_entry.h",
+    "src/google/protobuf/map_entry_lite.h",
+    "src/google/protobuf/map_field.h",
+    "src/google/protobuf/map_field_inl.h",
+    "src/google/protobuf/map_field_lite.h",
+    "src/google/protobuf/map_lite_test_util.h",
+    "src/google/protobuf/map_test_util.h",
+    "src/google/protobuf/map_test_util_impl.h",
+    "src/google/protobuf/map_type_handler.h",
+    "src/google/protobuf/message.h",
+    "src/google/protobuf/message_lite.h",
+    "src/google/protobuf/metadata.h",
+    "src/google/protobuf/metadata_lite.h",
+    "src/google/protobuf/package_info.h",
+    "src/google/protobuf/parse_context.h",
+    "src/google/protobuf/port.h",
+    "src/google/protobuf/reflection.h",
+    "src/google/protobuf/reflection_internal.h",
+    "src/google/protobuf/reflection_ops.h",
+    "src/google/protobuf/repeated_field.h",
+    "src/google/protobuf/service.h",
+    "src/google/protobuf/source_context.pb.h",
+    "src/google/protobuf/struct.pb.h",
+    "src/google/protobuf/stubs/bytestream.h",
+    "src/google/protobuf/stubs/callback.h",
+    "src/google/protobuf/stubs/casts.h",
+    "src/google/protobuf/stubs/common.h",
+    "src/google/protobuf/stubs/fastmem.h",
+    "src/google/protobuf/stubs/hash.h",
+    "src/google/protobuf/stubs/int128.h",
+    "src/google/protobuf/stubs/logging.h",
+    "src/google/protobuf/stubs/macros.h",
+    "src/google/protobuf/stubs/map_util.h",
+    "src/google/protobuf/stubs/mathutil.h",
+    "src/google/protobuf/stubs/mutex.h",
+    "src/google/protobuf/stubs/once.h",
+    "src/google/protobuf/stubs/platform_macros.h",
+    "src/google/protobuf/stubs/port.h",
+    "src/google/protobuf/stubs/status.h",
+    "src/google/protobuf/stubs/status_macros.h",
+    "src/google/protobuf/stubs/statusor.h",
+    "src/google/protobuf/stubs/stl_util.h",
+    "src/google/protobuf/stubs/stringpiece.h",
+    "src/google/protobuf/stubs/stringprintf.h",
+    "src/google/protobuf/stubs/strutil.h",
+    "src/google/protobuf/stubs/substitute.h",
+    "src/google/protobuf/stubs/template_util.h",
+    "src/google/protobuf/stubs/time.h",
+    "src/google/protobuf/test_util.h",
+    "src/google/protobuf/test_util2.h",
+    "src/google/protobuf/test_util_lite.h",
+    "src/google/protobuf/text_format.h",
+    "src/google/protobuf/timestamp.pb.h",
+    "src/google/protobuf/type.pb.h",
+    "src/google/protobuf/unknown_field_set.h",
+    "src/google/protobuf/wire_format.h",
+    "src/google/protobuf/wire_format_lite.h",
+    "src/google/protobuf/wrappers.pb.h",
+  ]
   configs += [ ":protobuf_warnings" ]
   public_configs = [ ":protobuf_config" ]
-  cflags = []
 }
 
 # This is the full, heavy protobuf lib that's needed for c++ .protos that don't
 # specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls
 # into that category.
 static_library("protobuf_full") {
-  sources = protobuf_lite_sources + [
-              "src/google/protobuf/any.cc",
-              "src/google/protobuf/any.pb.cc",
-              "src/google/protobuf/any.pb.h",
-              "src/google/protobuf/api.pb.cc",
-              "src/google/protobuf/api.pb.h",
-              "src/google/protobuf/compiler/importer.cc",
-              "src/google/protobuf/compiler/importer.h",
-              "src/google/protobuf/compiler/parser.cc",
-              "src/google/protobuf/compiler/parser.h",
-              "src/google/protobuf/descriptor.cc",
-              "src/google/protobuf/descriptor.h",
-              "src/google/protobuf/descriptor.pb.cc",
-              "src/google/protobuf/descriptor.pb.h",
-              "src/google/protobuf/descriptor_database.cc",
-              "src/google/protobuf/descriptor_database.h",
-              "src/google/protobuf/duration.pb.cc",
-              "src/google/protobuf/duration.pb.h",
-              "src/google/protobuf/dynamic_message.cc",
-              "src/google/protobuf/dynamic_message.h",
-              "src/google/protobuf/empty.pb.cc",
-              "src/google/protobuf/empty.pb.h",
-              "src/google/protobuf/extension_set_heavy.cc",
-              "src/google/protobuf/field_mask.pb.cc",
-              "src/google/protobuf/field_mask.pb.h",
-              "src/google/protobuf/generated_enum_reflection.h",
-              "src/google/protobuf/generated_enum_util.h",
-              "src/google/protobuf/generated_message_reflection.cc",
-              "src/google/protobuf/generated_message_reflection.h",
+  sources = [
+    "src/google/protobuf/any.cc",
+    "src/google/protobuf/any.pb.cc",
+    "src/google/protobuf/api.pb.cc",
+    "src/google/protobuf/compiler/importer.cc",
+    "src/google/protobuf/compiler/parser.cc",
+    "src/google/protobuf/descriptor.cc",
+    "src/google/protobuf/descriptor.pb.cc",
+    "src/google/protobuf/descriptor_database.cc",
+    "src/google/protobuf/duration.pb.cc",
+    "src/google/protobuf/dynamic_message.cc",
+    "src/google/protobuf/empty.pb.cc",
+    "src/google/protobuf/extension_set_heavy.cc",
+    "src/google/protobuf/field_mask.pb.cc",
+    "src/google/protobuf/generated_message_reflection.cc",
+    "src/google/protobuf/generated_message_table_driven.cc",
 
-              # gzip_stream.cc pulls in zlib, but it's not actually used by protoc, just
-              # by test code, so instead of compiling zlib for the host, let's just
-              # exclude this.
-              # "src/google/protobuf/io/gzip_stream.cc",
-              # "src/google/protobuf/io/gzip_stream.h",
-              "src/google/protobuf/io/printer.cc",
-              "src/google/protobuf/io/printer.h",
-              "src/google/protobuf/io/tokenizer.cc",
-              "src/google/protobuf/io/tokenizer.h",
-              "src/google/protobuf/map_entry.h",
-              "src/google/protobuf/map_field.cc",
-              "src/google/protobuf/map_field.h",
-              "src/google/protobuf/map_field_inl.h",
-              "src/google/protobuf/message.cc",
-              "src/google/protobuf/message.h",
-              "src/google/protobuf/metadata.h",
-              "src/google/protobuf/reflection.h",
-              "src/google/protobuf/reflection_internal.h",
-              "src/google/protobuf/reflection_ops.cc",
-              "src/google/protobuf/reflection_ops.h",
-              "src/google/protobuf/service.cc",
-              "src/google/protobuf/service.h",
-              "src/google/protobuf/source_context.pb.cc",
-              "src/google/protobuf/source_context.pb.h",
-              "src/google/protobuf/struct.pb.cc",
-              "src/google/protobuf/struct.pb.h",
-              "src/google/protobuf/stubs/mathutil.h",
-              "src/google/protobuf/stubs/singleton.h",
-              "src/google/protobuf/stubs/substitute.cc",
-              "src/google/protobuf/stubs/substitute.h",
-              "src/google/protobuf/text_format.cc",
-              "src/google/protobuf/text_format.h",
-              "src/google/protobuf/timestamp.pb.cc",
-              "src/google/protobuf/timestamp.pb.h",
-              "src/google/protobuf/type.pb.cc",
-              "src/google/protobuf/type.pb.h",
-              "src/google/protobuf/unknown_field_set.cc",
-              "src/google/protobuf/unknown_field_set.h",
-              "src/google/protobuf/util/field_comparator.cc",
-              "src/google/protobuf/util/field_comparator.h",
-              "src/google/protobuf/util/field_mask_util.cc",
-              "src/google/protobuf/util/field_mask_util.h",
-              "src/google/protobuf/util/internal/constants.h",
-              "src/google/protobuf/util/internal/datapiece.cc",
-              "src/google/protobuf/util/internal/datapiece.h",
-              "src/google/protobuf/util/internal/default_value_objectwriter.cc",
-              "src/google/protobuf/util/internal/default_value_objectwriter.h",
-              "src/google/protobuf/util/internal/error_listener.cc",
-              "src/google/protobuf/util/internal/error_listener.h",
-              "src/google/protobuf/util/internal/field_mask_utility.cc",
-              "src/google/protobuf/util/internal/field_mask_utility.h",
-              "src/google/protobuf/util/internal/json_escaping.cc",
-              "src/google/protobuf/util/internal/json_escaping.h",
-              "src/google/protobuf/util/internal/json_objectwriter.cc",
-              "src/google/protobuf/util/internal/json_objectwriter.h",
-              "src/google/protobuf/util/internal/json_stream_parser.cc",
-              "src/google/protobuf/util/internal/json_stream_parser.h",
-              "src/google/protobuf/util/internal/location_tracker.h",
-              "src/google/protobuf/util/internal/object_location_tracker.h",
-              "src/google/protobuf/util/internal/object_source.h",
-              "src/google/protobuf/util/internal/object_writer.cc",
-              "src/google/protobuf/util/internal/object_writer.h",
-              "src/google/protobuf/util/internal/proto_writer.cc",
-              "src/google/protobuf/util/internal/proto_writer.h",
-              "src/google/protobuf/util/internal/protostream_objectsource.cc",
-              "src/google/protobuf/util/internal/protostream_objectsource.h",
-              "src/google/protobuf/util/internal/protostream_objectwriter.cc",
-              "src/google/protobuf/util/internal/protostream_objectwriter.h",
-              "src/google/protobuf/util/internal/structured_objectwriter.h",
-              "src/google/protobuf/util/internal/type_info.cc",
-              "src/google/protobuf/util/internal/type_info.h",
-              "src/google/protobuf/util/internal/type_info_test_helper.cc",
-              "src/google/protobuf/util/internal/type_info_test_helper.h",
-              "src/google/protobuf/util/internal/utility.cc",
-              "src/google/protobuf/util/internal/utility.h",
-              "src/google/protobuf/util/json_util.cc",
-              "src/google/protobuf/util/json_util.h",
-              "src/google/protobuf/util/message_differencer.cc",
-              "src/google/protobuf/util/message_differencer.h",
-              "src/google/protobuf/util/time_util.cc",
-              "src/google/protobuf/util/time_util.h",
-              "src/google/protobuf/util/type_resolver.h",
-              "src/google/protobuf/util/type_resolver_util.cc",
-              "src/google/protobuf/util/type_resolver_util.h",
-              "src/google/protobuf/wire_format.cc",
-              "src/google/protobuf/wire_format.h",
-              "src/google/protobuf/wrappers.pb.cc",
-              "src/google/protobuf/wrappers.pb.h",
-            ]
+    # gzip_stream.cc pulls in zlib, but it's not actually used by protoc, just
+    # by test code, so instead of compiling zlib for the host, let's just
+    # exclude this.
+    # "src/google/protobuf/io/gzip_stream.cc",
+
+    "src/google/protobuf/io/printer.cc",
+    "src/google/protobuf/io/tokenizer.cc",
+    "src/google/protobuf/map_field.cc",
+    "src/google/protobuf/message.cc",
+    "src/google/protobuf/reflection_ops.cc",
+    "src/google/protobuf/service.cc",
+    "src/google/protobuf/source_context.pb.cc",
+    "src/google/protobuf/struct.pb.cc",
+    "src/google/protobuf/stubs/substitute.cc",
+    "src/google/protobuf/text_format.cc",
+    "src/google/protobuf/timestamp.pb.cc",
+    "src/google/protobuf/type.pb.cc",
+    "src/google/protobuf/unknown_field_set.cc",
+    "src/google/protobuf/util/delimited_message_util.cc",
+    "src/google/protobuf/util/field_comparator.cc",
+    "src/google/protobuf/util/field_mask_util.cc",
+    "src/google/protobuf/util/internal/datapiece.cc",
+    "src/google/protobuf/util/internal/default_value_objectwriter.cc",
+    "src/google/protobuf/util/internal/error_listener.cc",
+    "src/google/protobuf/util/internal/field_mask_utility.cc",
+    "src/google/protobuf/util/internal/json_escaping.cc",
+    "src/google/protobuf/util/internal/json_objectwriter.cc",
+    "src/google/protobuf/util/internal/json_stream_parser.cc",
+    "src/google/protobuf/util/internal/object_writer.cc",
+    "src/google/protobuf/util/internal/proto_writer.cc",
+    "src/google/protobuf/util/internal/protostream_objectsource.cc",
+    "src/google/protobuf/util/internal/protostream_objectwriter.cc",
+    "src/google/protobuf/util/internal/type_info.cc",
+    "src/google/protobuf/util/internal/type_info_test_helper.cc",
+    "src/google/protobuf/util/internal/utility.cc",
+    "src/google/protobuf/util/json_util.cc",
+    "src/google/protobuf/util/message_differencer.cc",
+    "src/google/protobuf/util/time_util.cc",
+    "src/google/protobuf/util/type_resolver_util.cc",
+    "src/google/protobuf/wire_format.cc",
+    "src/google/protobuf/wrappers.pb.cc",
+  ]
+
+  # git ls-files -- ':!*/compiler/*' ':!*/testing/*' 'src/google/protobuf/*.h' | sed 's/^/"/' | sed 's/$/",/'
+  public = [
+    "src/google/protobuf/any.h",
+    "src/google/protobuf/any.pb.h",
+    "src/google/protobuf/api.pb.h",
+    "src/google/protobuf/arena.h",
+    "src/google/protobuf/arena_impl.h",
+    "src/google/protobuf/arena_test_util.h",
+    "src/google/protobuf/arenastring.h",
+    "src/google/protobuf/descriptor.h",
+    "src/google/protobuf/descriptor.pb.h",
+    "src/google/protobuf/descriptor_database.h",
+    "src/google/protobuf/duration.pb.h",
+    "src/google/protobuf/dynamic_message.h",
+    "src/google/protobuf/empty.pb.h",
+    "src/google/protobuf/extension_set.h",
+    "src/google/protobuf/extension_set_inl.h",
+    "src/google/protobuf/field_mask.pb.h",
+    "src/google/protobuf/generated_enum_reflection.h",
+    "src/google/protobuf/generated_enum_util.h",
+    "src/google/protobuf/generated_message_reflection.h",
+    "src/google/protobuf/generated_message_table_driven.h",
+    "src/google/protobuf/generated_message_table_driven_lite.h",
+    "src/google/protobuf/generated_message_util.h",
+    "src/google/protobuf/has_bits.h",
+    "src/google/protobuf/implicit_weak_message.h",
+    "src/google/protobuf/inlined_string_field.h",
+    "src/google/protobuf/io/coded_stream.h",
+    "src/google/protobuf/io/gzip_stream.h",
+    "src/google/protobuf/io/io_win32.h",
+    "src/google/protobuf/io/package_info.h",
+    "src/google/protobuf/io/printer.h",
+    "src/google/protobuf/io/strtod.h",
+    "src/google/protobuf/io/tokenizer.h",
+    "src/google/protobuf/io/zero_copy_stream.h",
+    "src/google/protobuf/io/zero_copy_stream_impl.h",
+    "src/google/protobuf/io/zero_copy_stream_impl_lite.h",
+    "src/google/protobuf/map.h",
+    "src/google/protobuf/map_entry.h",
+    "src/google/protobuf/map_entry_lite.h",
+    "src/google/protobuf/map_field.h",
+    "src/google/protobuf/map_field_inl.h",
+    "src/google/protobuf/map_field_lite.h",
+    "src/google/protobuf/map_lite_test_util.h",
+    "src/google/protobuf/map_test_util.h",
+    "src/google/protobuf/map_test_util_impl.h",
+    "src/google/protobuf/map_type_handler.h",
+    "src/google/protobuf/message.h",
+    "src/google/protobuf/message_lite.h",
+    "src/google/protobuf/metadata.h",
+    "src/google/protobuf/metadata_lite.h",
+    "src/google/protobuf/package_info.h",
+    "src/google/protobuf/parse_context.h",
+    "src/google/protobuf/port.h",
+    "src/google/protobuf/reflection.h",
+    "src/google/protobuf/reflection_internal.h",
+    "src/google/protobuf/reflection_ops.h",
+    "src/google/protobuf/repeated_field.h",
+    "src/google/protobuf/service.h",
+    "src/google/protobuf/source_context.pb.h",
+    "src/google/protobuf/struct.pb.h",
+    "src/google/protobuf/stubs/bytestream.h",
+    "src/google/protobuf/stubs/callback.h",
+    "src/google/protobuf/stubs/casts.h",
+    "src/google/protobuf/stubs/common.h",
+    "src/google/protobuf/stubs/fastmem.h",
+    "src/google/protobuf/stubs/hash.h",
+    "src/google/protobuf/stubs/int128.h",
+    "src/google/protobuf/stubs/logging.h",
+    "src/google/protobuf/stubs/macros.h",
+    "src/google/protobuf/stubs/map_util.h",
+    "src/google/protobuf/stubs/mathutil.h",
+    "src/google/protobuf/stubs/mutex.h",
+    "src/google/protobuf/stubs/once.h",
+    "src/google/protobuf/stubs/platform_macros.h",
+    "src/google/protobuf/stubs/port.h",
+    "src/google/protobuf/stubs/status.h",
+    "src/google/protobuf/stubs/status_macros.h",
+    "src/google/protobuf/stubs/statusor.h",
+    "src/google/protobuf/stubs/stl_util.h",
+    "src/google/protobuf/stubs/stringpiece.h",
+    "src/google/protobuf/stubs/stringprintf.h",
+    "src/google/protobuf/stubs/strutil.h",
+    "src/google/protobuf/stubs/substitute.h",
+    "src/google/protobuf/stubs/template_util.h",
+    "src/google/protobuf/stubs/time.h",
+    "src/google/protobuf/test_util.h",
+    "src/google/protobuf/test_util2.h",
+    "src/google/protobuf/test_util_lite.h",
+    "src/google/protobuf/text_format.h",
+    "src/google/protobuf/timestamp.pb.h",
+    "src/google/protobuf/type.pb.h",
+    "src/google/protobuf/unknown_field_set.h",
+    "src/google/protobuf/util/delimited_message_util.h",
+    "src/google/protobuf/util/field_comparator.h",
+    "src/google/protobuf/util/field_mask_util.h",
+    "src/google/protobuf/util/internal/constants.h",
+    "src/google/protobuf/util/internal/datapiece.h",
+    "src/google/protobuf/util/internal/default_value_objectwriter.h",
+    "src/google/protobuf/util/internal/error_listener.h",
+    "src/google/protobuf/util/internal/expecting_objectwriter.h",
+    "src/google/protobuf/util/internal/field_mask_utility.h",
+    "src/google/protobuf/util/internal/json_escaping.h",
+    "src/google/protobuf/util/internal/json_objectwriter.h",
+    "src/google/protobuf/util/internal/json_stream_parser.h",
+    "src/google/protobuf/util/internal/location_tracker.h",
+    "src/google/protobuf/util/internal/mock_error_listener.h",
+    "src/google/protobuf/util/internal/object_location_tracker.h",
+    "src/google/protobuf/util/internal/object_source.h",
+    "src/google/protobuf/util/internal/object_writer.h",
+    "src/google/protobuf/util/internal/proto_writer.h",
+    "src/google/protobuf/util/internal/protostream_objectsource.h",
+    "src/google/protobuf/util/internal/protostream_objectwriter.h",
+    "src/google/protobuf/util/internal/structured_objectwriter.h",
+    "src/google/protobuf/util/internal/type_info.h",
+    "src/google/protobuf/util/internal/type_info_test_helper.h",
+    "src/google/protobuf/util/internal/utility.h",
+    "src/google/protobuf/util/json_util.h",
+    "src/google/protobuf/util/message_differencer.h",
+    "src/google/protobuf/util/package_info.h",
+    "src/google/protobuf/util/time_util.h",
+    "src/google/protobuf/util/type_resolver.h",
+    "src/google/protobuf/util/type_resolver_util.h",
+    "src/google/protobuf/wire_format.h",
+    "src/google/protobuf/wire_format_lite.h",
+    "src/google/protobuf/wrappers.pb.h",
+  ]
   configs += [ ":protobuf_warnings" ]
   public_configs = [ ":protobuf_config" ]
-  cflags = []
+  deps = [ ":protobuf_lite" ]
 }
 
 # Only compile the compiler for the host architecture.
@@ -307,174 +400,87 @@
   # itself. See src/google/protobuf/compiler/plugin.h
   static_library("protoc_lib") {
     sources = [
-      "src//google/protobuf/compiler/js/well_known_types_embed.h",
       "src/google/protobuf/compiler/code_generator.cc",
-      "src/google/protobuf/compiler/code_generator.h",
       "src/google/protobuf/compiler/command_line_interface.cc",
-      "src/google/protobuf/compiler/command_line_interface.h",
       "src/google/protobuf/compiler/cpp/cpp_enum.cc",
-      "src/google/protobuf/compiler/cpp/cpp_enum.h",
       "src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_enum_field.h",
       "src/google/protobuf/compiler/cpp/cpp_extension.cc",
-      "src/google/protobuf/compiler/cpp/cpp_extension.h",
       "src/google/protobuf/compiler/cpp/cpp_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_field.h",
       "src/google/protobuf/compiler/cpp/cpp_file.cc",
-      "src/google/protobuf/compiler/cpp/cpp_file.h",
       "src/google/protobuf/compiler/cpp/cpp_generator.cc",
-      "src/google/protobuf/compiler/cpp/cpp_generator.h",
       "src/google/protobuf/compiler/cpp/cpp_helpers.cc",
-      "src/google/protobuf/compiler/cpp/cpp_helpers.h",
       "src/google/protobuf/compiler/cpp/cpp_map_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_map_field.h",
       "src/google/protobuf/compiler/cpp/cpp_message.cc",
-      "src/google/protobuf/compiler/cpp/cpp_message.h",
       "src/google/protobuf/compiler/cpp/cpp_message_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_message_field.h",
-      "src/google/protobuf/compiler/cpp/cpp_names.h",
       "src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
-      "src/google/protobuf/compiler/cpp/cpp_padding_optimizer.h",
-      "src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
-      "src/google/protobuf/compiler/cpp/cpp_parse_function_generator.h",
       "src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_primitive_field.h",
       "src/google/protobuf/compiler/cpp/cpp_service.cc",
-      "src/google/protobuf/compiler/cpp/cpp_service.h",
       "src/google/protobuf/compiler/cpp/cpp_string_field.cc",
-      "src/google/protobuf/compiler/cpp/cpp_string_field.h",
       "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
-      "src/google/protobuf/compiler/csharp/csharp_doc_comment.h",
       "src/google/protobuf/compiler/csharp/csharp_enum.cc",
-      "src/google/protobuf/compiler/csharp/csharp_enum.h",
       "src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_enum_field.h",
       "src/google/protobuf/compiler/csharp/csharp_field_base.cc",
-      "src/google/protobuf/compiler/csharp/csharp_field_base.h",
       "src/google/protobuf/compiler/csharp/csharp_generator.cc",
-      "src/google/protobuf/compiler/csharp/csharp_generator.h",
       "src/google/protobuf/compiler/csharp/csharp_helpers.cc",
-      "src/google/protobuf/compiler/csharp/csharp_helpers.h",
       "src/google/protobuf/compiler/csharp/csharp_map_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_map_field.h",
       "src/google/protobuf/compiler/csharp/csharp_message.cc",
-      "src/google/protobuf/compiler/csharp/csharp_message.h",
       "src/google/protobuf/compiler/csharp/csharp_message_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_message_field.h",
-      "src/google/protobuf/compiler/csharp/csharp_options.h",
       "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_primitive_field.h",
       "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
-      "src/google/protobuf/compiler/csharp/csharp_reflection_class.h",
       "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h",
       "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h",
       "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h",
       "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
-      "src/google/protobuf/compiler/csharp/csharp_source_generator_base.h",
       "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
-      "src/google/protobuf/compiler/csharp/csharp_wrapper_field.h",
       "src/google/protobuf/compiler/java/java_context.cc",
-      "src/google/protobuf/compiler/java/java_context.h",
       "src/google/protobuf/compiler/java/java_doc_comment.cc",
-      "src/google/protobuf/compiler/java/java_doc_comment.h",
       "src/google/protobuf/compiler/java/java_enum.cc",
-      "src/google/protobuf/compiler/java/java_enum.h",
       "src/google/protobuf/compiler/java/java_enum_field.cc",
-      "src/google/protobuf/compiler/java/java_enum_field.h",
       "src/google/protobuf/compiler/java/java_enum_field_lite.cc",
-      "src/google/protobuf/compiler/java/java_enum_field_lite.h",
       "src/google/protobuf/compiler/java/java_enum_lite.cc",
-      "src/google/protobuf/compiler/java/java_enum_lite.h",
       "src/google/protobuf/compiler/java/java_extension.cc",
-      "src/google/protobuf/compiler/java/java_extension.h",
       "src/google/protobuf/compiler/java/java_extension_lite.cc",
-      "src/google/protobuf/compiler/java/java_extension_lite.h",
       "src/google/protobuf/compiler/java/java_field.cc",
-      "src/google/protobuf/compiler/java/java_field.h",
       "src/google/protobuf/compiler/java/java_file.cc",
-      "src/google/protobuf/compiler/java/java_file.h",
       "src/google/protobuf/compiler/java/java_generator.cc",
-      "src/google/protobuf/compiler/java/java_generator.h",
       "src/google/protobuf/compiler/java/java_generator_factory.cc",
-      "src/google/protobuf/compiler/java/java_generator_factory.h",
       "src/google/protobuf/compiler/java/java_helpers.cc",
-      "src/google/protobuf/compiler/java/java_helpers.h",
-      "src/google/protobuf/compiler/java/java_kotlin_generator.cc",
-      "src/google/protobuf/compiler/java/java_kotlin_generator.h",
       "src/google/protobuf/compiler/java/java_map_field.cc",
-      "src/google/protobuf/compiler/java/java_map_field.h",
       "src/google/protobuf/compiler/java/java_map_field_lite.cc",
-      "src/google/protobuf/compiler/java/java_map_field_lite.h",
       "src/google/protobuf/compiler/java/java_message.cc",
-      "src/google/protobuf/compiler/java/java_message.h",
       "src/google/protobuf/compiler/java/java_message_builder.cc",
-      "src/google/protobuf/compiler/java/java_message_builder.h",
       "src/google/protobuf/compiler/java/java_message_builder_lite.cc",
-      "src/google/protobuf/compiler/java/java_message_builder_lite.h",
       "src/google/protobuf/compiler/java/java_message_field.cc",
-      "src/google/protobuf/compiler/java/java_message_field.h",
       "src/google/protobuf/compiler/java/java_message_field_lite.cc",
-      "src/google/protobuf/compiler/java/java_message_field_lite.h",
       "src/google/protobuf/compiler/java/java_message_lite.cc",
-      "src/google/protobuf/compiler/java/java_message_lite.h",
       "src/google/protobuf/compiler/java/java_name_resolver.cc",
-      "src/google/protobuf/compiler/java/java_name_resolver.h",
       "src/google/protobuf/compiler/java/java_primitive_field.cc",
-      "src/google/protobuf/compiler/java/java_primitive_field.h",
       "src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
-      "src/google/protobuf/compiler/java/java_primitive_field_lite.h",
       "src/google/protobuf/compiler/java/java_service.cc",
-      "src/google/protobuf/compiler/java/java_service.h",
       "src/google/protobuf/compiler/java/java_shared_code_generator.cc",
-      "src/google/protobuf/compiler/java/java_shared_code_generator.h",
       "src/google/protobuf/compiler/java/java_string_field.cc",
-      "src/google/protobuf/compiler/java/java_string_field.h",
       "src/google/protobuf/compiler/java/java_string_field_lite.cc",
-      "src/google/protobuf/compiler/java/java_string_field_lite.h",
       "src/google/protobuf/compiler/js/js_generator.cc",
-      "src/google/protobuf/compiler/js/js_generator.h",
       "src/google/protobuf/compiler/js/well_known_types_embed.cc",
       "src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_enum.h",
       "src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_enum_field.h",
       "src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_extension.h",
       "src/google/protobuf/compiler/objectivec/objectivec_field.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_field.h",
       "src/google/protobuf/compiler/objectivec/objectivec_file.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_file.h",
       "src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_generator.h",
       "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_helpers.h",
       "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_map_field.h",
       "src/google/protobuf/compiler/objectivec/objectivec_message.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_message.h",
       "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
       "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_oneof.h",
       "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
-      "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h",
       "src/google/protobuf/compiler/php/php_generator.cc",
-      "src/google/protobuf/compiler/php/php_generator.h",
       "src/google/protobuf/compiler/plugin.cc",
-      "src/google/protobuf/compiler/plugin.h",
       "src/google/protobuf/compiler/plugin.pb.cc",
-      "src/google/protobuf/compiler/plugin.pb.h",
       "src/google/protobuf/compiler/python/python_generator.cc",
-      "src/google/protobuf/compiler/python/python_generator.h",
       "src/google/protobuf/compiler/ruby/ruby_generator.cc",
-      "src/google/protobuf/compiler/ruby/ruby_generator.h",
       "src/google/protobuf/compiler/subprocess.cc",
-      "src/google/protobuf/compiler/subprocess.h",
       "src/google/protobuf/compiler/zip_writer.cc",
-      "src/google/protobuf/compiler/zip_writer.h",
     ]
     configs += [ ":protobuf_warnings" ]
     public_deps = [ ":protobuf_full" ]