# 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/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_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/zero_copy_stream.cc",
  "src/google/protobuf/io/zero_copy_stream.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/io_win32.cc",
  "src/google/protobuf/stubs/io_win32.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.cc",
  "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",
  "src/google/protobuf/wire_format_lite_inl.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 (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/protos/ftrace:full",
    "//third_party/perfetto/gn:protobuf_full_deps",

    # The SQLite fuzzer's corpus generator needs protobuf_full and is not
    # included in Chrome.
    "//third_party/sqlite:sqlite3_lpm_corpus_gen",

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

  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_enum_util.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/strtod.cc",
              "src/google/protobuf/io/strtod.h",
              "src/google/protobuf/io/tokenizer.cc",
              "src/google/protobuf/io/tokenizer.h",
              "src/google/protobuf/io/zero_copy_stream_impl.cc",
              "src/google/protobuf/io/zero_copy_stream_impl.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/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",
            ]

  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_lazy_message_field.cc",
      "src/google/protobuf/compiler/java/java_lazy_message_field.h",
      "src/google/protobuf/compiler/java/java_lazy_message_field_lite.cc",
      "src/google/protobuf/compiler/java/java_lazy_message_field_lite.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",
    ]
  }

  executable("js_embed") {
    sources = [
      "src/google/protobuf/compiler/js/embed.cc",
    ]

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

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/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")
}
