# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/sanitizers/sanitizers.gni")

config("protobuf_config") {
  include_dirs = [ "src" ]
  defines = [
    "GOOGLE_PROTOBUF_NO_RTTI",
    "GOOGLE_PROTOBUF_NO_STATIC_INITIALIZER",
  ]
  if (!is_win) {
    defines += [ "HAVE_PTHREAD" ]
  }
}

config("protobuf_warnings") {
  cflags = []
  if (is_clang) {
    # protobuf-3 contains a few functions that are unused.
    cflags += [ "-Wno-unused-function" ]
  }
}

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") {
  include_dirs = [
    "src",
    "$root_gen_dir/protoc_out",
  ]
}

protobuf_lite_sources = [
  "src/google/protobuf/any_lite.cc",
  "src/google/protobuf/arena.cc",
  "src/google/protobuf/arena.h",
  "src/google/protobuf/arena_impl.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/generated_enum_util.cc",
  "src/google/protobuf/generated_enum_util.h",
  "src/google/protobuf/generated_message_table_driven_lite.cc",
  "src/google/protobuf/generated_message_table_driven_lite.h",
  "src/google/protobuf/generated_message_util.cc",
  "src/google/protobuf/generated_message_util.h",
  "src/google/protobuf/has_bits.h",
  "src/google/protobuf/implicit_weak_message.cc",
  "src/google/protobuf/implicit_weak_message.h",
  "src/google/protobuf/inlined_string_field.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/io_win32.cc",
  "src/google/protobuf/io/io_win32.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.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/repeated_field.cc",
  "src/google/protobuf/repeated_field.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/fastmem.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/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/wire_format_lite.cc",
  "src/google/protobuf/wire_format_lite.h",
]

protobuf_lite_cflags = []
if (is_win) {
  protobuf_lite_cflags = [
    "/wd4018",  # signed/unsigned mismatch in comparison
    "/wd4065",  # switch statement contains 'default' but no 'case' labels
    "/wd4146",  # unary minus operator applied to unsigned type
    "/wd4244",  # implicit conversion, possible loss of data
    "/wd4267",  # size_t to int truncation
    "/wd4291",  # no matching operator delete for a placement new.
    "/wd4305",  # double to float truncation
    "/wd4355",  # 'this' used in base member initializer list
    "/wd4506",  # no definition for inline function (protobuf issue #240)
    "/wd4715",  # not all control paths return a value (fixed in trunk)
  ]
}

# Do not allow libprotobuf_lite to be dynamically linked on Linux.  Later
# versions of Ubuntu like Xenial and Yakkety link in the system
# libprotobuf_lite by the following dependency chain: chrome -> gtk ->
# libmirclient -> libmirprotobuf -> libprotobuf-lite.  Trying to load
# the system libprotobuf-lite after already having loaded the libprotobuf_lite
# component will result in an immediate crash. (crbug.com/700120)
if (is_component_build && is_desktop_linux) {
  shared_library("mirclient") {
    inputs = [
      "mirclient.map",
    ]
    sources = [
      "mirclient.cc",
    ]
    ldflags =
        [ "-Wl,--version-script=" +
          rebase_path("//third_party/protobuf/mirclient.map", root_build_dir) ]
    output_extension = "so.9"
  }
}

component("protobuf_lite") {
  sources = protobuf_lite_sources

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [
    "//build/config/compiler:no_chromium_code",

    # Must be after no_chromium_code for warning flags to be ordered
    # correctly.
    ":protobuf_warnings",
  ]

  # Remove Sanitizers and coverage for a performance boost when fuzzing. This is
  # OK because the only fuzzers that use protobuf are libprotobuf-mutator based
  # fuzzers, and they don't actually target the protobuf code, they just use it.
  configs -= not_fuzzed_remove_configs
  configs += [ "//build/config/sanitizers:not_fuzzed" ]

  if (is_win) {
    configs -= [ "//build/config/win:lean_and_mean" ]
  }

  public_configs = [
    ":protobuf_config",

    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",
  ]

  if (use_cobalt_customizations) {
    public_configs -= [ ":protobuf_config" ]
    all_dependent_configs = [ ":protobuf_config" ]
  }

  if (is_android) {
    libs = [ "log" ]  # Used by src/google/protobuf/stubs/common.cc
  }

  cflags = protobuf_lite_cflags

  if (is_component_build && is_desktop_linux) {
    deps = [
      ":mirclient",
    ]
  }

  # 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
# specify the LITE_RUNTIME option. The protocol compiler itself (protoc) falls
# into that category. Do not use in Chrome code.
static_library("protobuf_full") {
  # Prevent people from depending on this outside our file.
  visibility = [
    ":*",

    # requires descriptors & reflection; testonly.
    "//third_party/libprotobuf-mutator:*",

    # The traffic_annotation tool is not part of Chrome itself, and needs to
    # parse human-readable protobufs.
    "//tools/traffic_annotation/*",

    # Chromecast requires descriptors and reflection.
    "//chromecast/*",

    # libassistant requires descriptors and reflection for testing.
    "//libassistant/*",

    # Perfetto uses the full library for testing.
    "//third_party/perfetto/gn:protobuf_full",

    # Some tests inside ChromeOS need reflection to parse golden files.
    # Not included in production code.
    "//chrome/test:usage_time_limit_unittests",

    # The protobuf-based SQLite and GPU fuzzers need protobuf_full and are not
    # included in Chrome.
    "//third_party/sqlite:sqlite3_lpm_corpus_gen",
    "//gpu:gl_lpm_fuzzer_proto",
    "//gpu:gl_lpm_fuzzer_proto_gen",
    "//gpu:gl_lpm_shader_to_string_unittest",
  ]

  sources = protobuf_lite_sources + [
              "src/google/protobuf/any.cc",
              "src/google/protobuf/any.h",
              "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_message_reflection.cc",
              "src/google/protobuf/generated_message_reflection.h",
              "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/mathlimits.cc",
              "src/google/protobuf/stubs/mathlimits.h",
              "src/google/protobuf/stubs/mathutil.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",
            ]

  deps = [
    "//third_party/zlib",
  ]

  if (is_android) {
    libs = [ "log" ]  # Used by src/google/protobuf/stubs/common.cc
  }

  configs -= [ "//build/config/compiler:chromium_code" ]
  configs += [
    "//build/config/compiler:no_chromium_code",

    # Must be after no_chromium_code for warning flags to be ordered
    # correctly.
    ":protobuf_warnings",
  ]

  # Remove coverage and Sanitizers other than ASan for a performance boost when
  # fuzzing. ASan can't be removed here because of a bug preventing unsanitized
  # code from using libc++, which protobuf_full uses.
  configs -= not_fuzzed_remove_nonasan_configs
  configs += [ "//build/config/sanitizers:not_fuzzed" ]

  if (is_win) {
    configs -= [ "//build/config/win:lean_and_mean" ]
  }
  public_configs = [
    ":protobuf_config",

    # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    "//build/config/compiler:no_size_t_to_int_warning",
  ]

  cflags = protobuf_lite_cflags

  defines = [ "HAVE_ZLIB" ]
}

# 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/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_message_layout_helper.h",
      "src/google/protobuf/compiler/cpp/cpp_options.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_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_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_options.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/js/well_known_types_embed.h",
      "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 -= [ "//build/config/compiler:chromium_code" ]
    configs += [
      "//build/config/compiler:no_chromium_code",

      # Must be after no_chromium_code for warning flags to be ordered
      # correctly.
      ":protobuf_warnings",
    ]
    if (is_win) {
      # This is defined internally, don't warn on duplicate.
      configs -= [ "//build/config/win:lean_and_mean" ]
    }

    public_configs = [ ":protobuf_config" ]

    cflags = protobuf_lite_cflags

    public_deps = [
      ":protobuf_full",
    ]
  }

  executable("protoc") {
    sources = [
      "src/google/protobuf/compiler/main.cc",
    ]

    configs -= [ "//build/config/compiler:chromium_code" ]
    configs += [ "//build/config/compiler:no_chromium_code" ]

    cflags = protobuf_lite_cflags

    deps = [
      ":protoc_lib",

      # Default manifest on Windows (a no-op elsewhere).
      "//build/win:default_exe_manifest",
    ]
  }
}

google_python_dir = "$root_out_dir/pyproto/google"

copy("copy_google") {
  sources = [
    "__init__.py",
  ]
  outputs = [
    "$google_python_dir/{{source_file_part}}",
  ]
}

copy("copy_six") {
  sources = [
    "third_party/six/six.py",
  ]
  outputs = [
    "$google_python_dir/third_party/six/{{source_file_part}}",
  ]
}

copy("copy_google_protobuf") {
  sources = [
    "python/google/protobuf/__init__.py",
    "python/google/protobuf/descriptor.py",
    "python/google/protobuf/descriptor_database.py",
    "python/google/protobuf/descriptor_pool.py",
    "python/google/protobuf/json_format.py",
    "python/google/protobuf/message.py",
    "python/google/protobuf/message_factory.py",
    "python/google/protobuf/proto_builder.py",
    "python/google/protobuf/reflection.py",
    "python/google/protobuf/service.py",
    "python/google/protobuf/service_reflection.py",
    "python/google/protobuf/symbol_database.py",
    "python/google/protobuf/text_encoding.py",
    "python/google/protobuf/text_format.py",

    # TODO(ncarter): protoc's python generator treats descriptor.proto
    # specially, but only when the input path is exactly
    # "google/protobuf/descriptor.proto".  I'm not sure how to execute a rule
    # from a different directory.  For now, use a manually-generated copy of
    # descriptor_pb2.py.
    "python/google/protobuf/descriptor_pb2.py",
  ]
  outputs = [
    "$google_python_dir/protobuf/{{source_file_part}}",
  ]
}

copy("copy_google_protobuf_internal") {
  sources = [
    "python/google/protobuf/internal/__init__.py",
    "python/google/protobuf/internal/_parameterized.py",
    "python/google/protobuf/internal/api_implementation.py",
    "python/google/protobuf/internal/containers.py",
    "python/google/protobuf/internal/decoder.py",
    "python/google/protobuf/internal/encoder.py",
    "python/google/protobuf/internal/enum_type_wrapper.py",
    "python/google/protobuf/internal/extension_dict.py",
    "python/google/protobuf/internal/message_listener.py",
    "python/google/protobuf/internal/python_message.py",
    "python/google/protobuf/internal/type_checkers.py",
    "python/google/protobuf/internal/well_known_types.py",
    "python/google/protobuf/internal/wire_format.py",
  ]
  outputs = [
    "$google_python_dir/protobuf/internal/{{source_file_part}}",
  ]
}

# Build time dependency for action rules.
group("py_proto") {
  public_deps = [
    ":copy_google",
    ":copy_google_protobuf",
    ":copy_google_protobuf_internal",
    ":copy_six",
  ]
}

# Runtime dependency if the target needs the python scripts.
group("py_proto_runtime") {
  deps = [
    ":py_proto",
  ]

  # Targets that depend on this should depend on the copied data files.
  data = get_target_outputs(":copy_google")
  data += get_target_outputs(":copy_six")
  data += get_target_outputs(":copy_google_protobuf")
  data += get_target_outputs(":copy_google_protobuf_internal")
}
