# Copyright 2017 The Fuchsia Authors. All rights reserved.
#
# 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.

import("//build/test.gni")
import("//third_party/protobuf/proto_library.gni")

config("protobuf_config") {
  include_dirs = [ "src" ]
  defines = [
    "GOOGLE_PROTOBUF_NO_RTTI",
    "HAVE_PTHREAD",
  ]
}
config("protobuf_warnings") {
  cflags = []

  if (is_clang) {
    # These are all needed as of https://github.com/protocolbuffers/protobuf/commit/66d7491.
    cflags += [
      "-Wno-float-conversion",
      "-Wno-implicit-float-conversion",
      "-Wno-implicit-int-conversion",
      "-Wno-implicit-int-float-conversion",
      # TODO(https://github.com/protocolbuffers/protobuf/pull/8859): Remove this.
      "-Wno-missing-field-initializers",
      "-Wno-shorten-64-to-32",
      "-Wno-sign-compare",
    ]
  }
}

# This config should be applied to targets using generated code from the proto
# compiler. It sets up the include directories properly.
config("using_proto") {
  include_dirs = [
    "src",
    "$root_gen_dir",
  ]
}

static_library("protobuf_lite") {
  sources = [
    "src/google/protobuf/any_lite.cc",
    "src/google/protobuf/arena.cc",
    "src/google/protobuf/arenastring.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/map.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_access_listener.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_tctable_decl.h",
    "src/google/protobuf/generated_message_tctable_impl.h",
    "src/google/protobuf/generated_message_util.h",
    "src/google/protobuf/has_bits.h",
    "src/google/protobuf/implicit_weak_message.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/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" ]
}

# 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 = [
    "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_access_listener.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/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_access_listener.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_tctable_decl.h",
    "src/google/protobuf/generated_message_tctable_impl.h",
    "src/google/protobuf/generated_message_util.h",
    "src/google/protobuf/has_bits.h",
    "src/google/protobuf/implicit_weak_message.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/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" ]
  deps = [ ":protobuf_lite" ]
}

# Only compile the compiler for the host architecture.
if (current_toolchain == host_toolchain) {
  # protoc compiler is separated into protoc library and executable targets to
  # support protoc plugins that need to link libprotoc, but not the main()
  # itself. See src/google/protobuf/compiler/plugin.h
  static_library("protoc_lib") {
    sources = [
      "src/google/protobuf/compiler/code_generator.cc",
      "src/google/protobuf/compiler/command_line_interface.cc",
      "src/google/protobuf/compiler/cpp/cpp_enum.cc",
      "src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
      "src/google/protobuf/compiler/cpp/cpp_extension.cc",
      "src/google/protobuf/compiler/cpp/cpp_field.cc",
      "src/google/protobuf/compiler/cpp/cpp_file.cc",
      "src/google/protobuf/compiler/cpp/cpp_generator.cc",
      "src/google/protobuf/compiler/cpp/cpp_helpers.cc",
      "src/google/protobuf/compiler/cpp/cpp_map_field.cc",
      "src/google/protobuf/compiler/cpp/cpp_message.cc",
      "src/google/protobuf/compiler/cpp/cpp_message_field.cc",
      "src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
      "src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
      "src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
      "src/google/protobuf/compiler/cpp/cpp_service.cc",
      "src/google/protobuf/compiler/cpp/cpp_string_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
      "src/google/protobuf/compiler/csharp/csharp_enum.cc",
      "src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_field_base.cc",
      "src/google/protobuf/compiler/csharp/csharp_generator.cc",
      "src/google/protobuf/compiler/csharp/csharp_helpers.cc",
      "src/google/protobuf/compiler/csharp/csharp_map_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_message.cc",
      "src/google/protobuf/compiler/csharp/csharp_message_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
      "src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
      "src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
      "src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
      "src/google/protobuf/compiler/java/java_context.cc",
      "src/google/protobuf/compiler/java/java_doc_comment.cc",
      "src/google/protobuf/compiler/java/java_enum.cc",
      "src/google/protobuf/compiler/java/java_enum_field.cc",
      "src/google/protobuf/compiler/java/java_enum_field_lite.cc",
      "src/google/protobuf/compiler/java/java_enum_lite.cc",
      "src/google/protobuf/compiler/java/java_extension.cc",
      "src/google/protobuf/compiler/java/java_extension_lite.cc",
      "src/google/protobuf/compiler/java/java_field.cc",
      "src/google/protobuf/compiler/java/java_file.cc",
      "src/google/protobuf/compiler/java/java_generator.cc",
      "src/google/protobuf/compiler/java/java_generator_factory.cc",
      "src/google/protobuf/compiler/java/java_helpers.cc",
      "src/google/protobuf/compiler/java/java_kotlin_generator.cc",
      "src/google/protobuf/compiler/java/java_map_field.cc",
      "src/google/protobuf/compiler/java/java_map_field_lite.cc",
      "src/google/protobuf/compiler/java/java_message.cc",
      "src/google/protobuf/compiler/java/java_message_builder.cc",
      "src/google/protobuf/compiler/java/java_message_builder_lite.cc",
      "src/google/protobuf/compiler/java/java_message_field.cc",
      "src/google/protobuf/compiler/java/java_message_field_lite.cc",
      "src/google/protobuf/compiler/java/java_message_lite.cc",
      "src/google/protobuf/compiler/java/java_name_resolver.cc",
      "src/google/protobuf/compiler/java/java_primitive_field.cc",
      "src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
      "src/google/protobuf/compiler/java/java_service.cc",
      "src/google/protobuf/compiler/java/java_shared_code_generator.cc",
      "src/google/protobuf/compiler/java/java_string_field.cc",
      "src/google/protobuf/compiler/java/java_string_field_lite.cc",
      "src/google/protobuf/compiler/js/js_generator.cc",
      "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_field.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_field.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_file.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_message.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
      "src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
      "src/google/protobuf/compiler/php/php_generator.cc",
      "src/google/protobuf/compiler/plugin.cc",
      "src/google/protobuf/compiler/plugin.pb.cc",
      "src/google/protobuf/compiler/python/python_generator.cc",
      "src/google/protobuf/compiler/ruby/ruby_generator.cc",
      "src/google/protobuf/compiler/subprocess.cc",
      "src/google/protobuf/compiler/zip_writer.cc",
    ]
    configs += [ ":protobuf_warnings" ]
    public_deps = [ ":protobuf_full" ]
  }

  executable("protoc") {
    sources = [ "src/google/protobuf/compiler/main.cc" ]
    deps = [ ":protoc_lib" ]
  }
}

proto_library("custom_options_proto") {
  sources = [ "src/test/custom_options.proto" ]
  use_protobuf_full = true
}

test("custom_options_test") {
  sources = [ "src/test/custom_options.cc" ]
  deps = [
    ":custom_options_proto",
    "//third_party/googletest:gtest_main",
  ]
}

if (is_fuchsia_tree) {
  import("//build/components.gni")

  fuchsia_unittest_package("protobuf_tests") {
    deps = [ ":custom_options_test" ]
  }
}
