# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import("../gn/perfetto.gni")
import("../gn/standalone/libc++/libc++.gni")
import("../gn/standalone/sanitizers/vars.gni")

# We should never get here in embedder builds.
assert(perfetto_build_standalone || is_perfetto_build_generator)

# This is to make sure that we don't add accidental dependencies from build
# files in src/ or include/ to buildtools. All deps (outside of /gn/*) should
# go via the groups defined in gn/BUILD.gn, not directly into buildtools. This
# is to allow embedders to re-route targets to their third_party directories.
_buildtools_visibility = [
  "./*",
  "../gn:*",
  "../gn/standalone:*",
]

# Used to suppress warnings coming from googletest macros expansions.
# These suppressions apply both to gtest/gmock haders and to perfetto's
# test translation units. See test/gtest_and_gmock.h for the subset of
# suppressions that apply only to the gmock/gtest headers.
config("test_warning_suppressions") {
  visibility = _buildtools_visibility
  if (is_clang) {
    cflags = [
      "-Wno-covered-switch-default",
      "-Wno-deprecated-copy-dtor",
      "-Wno-global-constructors",
      "-Wno-inconsistent-missing-override",
      "-Wno-language-extension-token",
      "-Wno-suggest-destructor-override",
      "-Wno-suggest-override",
      "-Wno-undef",
      "-Wno-unknown-warning-option",
      "-Wno-unused-member-function",
      "-Wno-used-but-marked-unused",
      "-Wno-weak-vtables",
      "-Wno-zero-as-null-pointer-constant",
    ]
  } else if (!is_win) {
    cflags = [
      "-Wno-unknown-warning-option",
      "-Wno-deprecated-copy",
      "-Wno-uninitialized",
    ]
  }
}

config("libunwindstack_config") {
  visibility = _buildtools_visibility
  cflags = [
    # Using -isystem instead of include_dirs (-I), so we don't need to suppress
    # warnings coming from libunwindstack headers. Doing so would mask warnings
    # in our own code.
    perfetto_isystem_cflag,
    rebase_path("android-unwinding/libunwindstack/include", root_build_dir),
    perfetto_isystem_cflag,
    rebase_path("android-libprocinfo/include", root_build_dir),
    perfetto_isystem_cflag,
    rebase_path("android-libbase/include", root_build_dir),
    perfetto_isystem_cflag,
    rebase_path("android-core/demangle/include", root_build_dir),
  ]
  defines = [ "NO_LIBDEXFILE_SUPPORT" ]
}

# Config to include gtest.h in test targets.
config("googletest_config") {
  visibility = _buildtools_visibility
  defines = [ "GTEST_LANG_CXX11=1" ]
  include_dirs = [
    "googletest/googletest/include",
    "googletest/googlemock/include",
  ]
  configs = [ ":test_warning_suppressions" ]
}

source_set("gtest") {
  visibility = _buildtools_visibility
  testonly = true
  include_dirs = [ "googletest/googletest" ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":googletest_config" ]
  all_dependent_configs = [ ":googletest_config" ]
  sources = [ "googletest/googletest/src/gtest-all.cc" ]
  deps = [ "//gn:default_deps" ]
}

source_set("gtest_main") {
  visibility = _buildtools_visibility
  testonly = true
  configs -= [ "//gn/standalone:extra_warnings" ]
  configs += [ ":googletest_config" ]
  sources = [ "googletest/googletest/src/gtest_main.cc" ]
  deps = [ "//gn:default_deps" ]
}

source_set("gmock") {
  visibility = _buildtools_visibility
  testonly = true
  include_dirs = [ "googletest/googlemock" ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":googletest_config" ]
  all_dependent_configs = [ ":googletest_config" ]
  sources = [ "googletest/googlemock/src/gmock-all.cc" ]
  deps = [ "//gn:default_deps" ]
}

# Configuration used to build libprotobuf_* and the protoc compiler.
config("protobuf_config") {
  visibility = _buildtools_visibility

  # Apply the lighter supressions and macro definitions from above.
  configs = [ "//gn:protobuf_gen_config" ]

  defines = [ "HAVE_PTHREAD=1" ]
  cflags = []
  if (!is_clang && !is_win) {  # implies gcc
    cflags += [ "-Wno-stringop-overread" ]
  }
  if (is_win) {
    cflags += [ "/W0" ]
  }
}

# Configuration propagated to targets depending on protobuf_full.
config("protobuf_full_public_config") {
  visibility = _buildtools_visibility
  cflags = []
  if (is_clang) {
    cflags += [ "-Wno-switch-enum" ]
    if (is_win) {
      cflags += [ "-Wno-undef" ]
    }
  }
}

source_set("protobuf_lite") {
  visibility = _buildtools_visibility
  sources = [
    "protobuf/src/google/protobuf/any.h",
    "protobuf/src/google/protobuf/any.pb.h",
    "protobuf/src/google/protobuf/any_lite.cc",
    "protobuf/src/google/protobuf/api.pb.h",
    "protobuf/src/google/protobuf/arena.cc",
    "protobuf/src/google/protobuf/arena.h",
    "protobuf/src/google/protobuf/arena_impl.h",
    "protobuf/src/google/protobuf/arenastring.cc",
    "protobuf/src/google/protobuf/arenastring.h",
    "protobuf/src/google/protobuf/arenaz_sampler.cc",
    "protobuf/src/google/protobuf/arenaz_sampler.h",
    "protobuf/src/google/protobuf/compiler/importer.h",
    "protobuf/src/google/protobuf/compiler/parser.h",
    "protobuf/src/google/protobuf/descriptor.h",
    "protobuf/src/google/protobuf/descriptor.pb.h",
    "protobuf/src/google/protobuf/descriptor_database.h",
    "protobuf/src/google/protobuf/duration.pb.h",
    "protobuf/src/google/protobuf/dynamic_message.h",
    "protobuf/src/google/protobuf/empty.pb.h",
    "protobuf/src/google/protobuf/explicitly_constructed.h",
    "protobuf/src/google/protobuf/extension_set.cc",
    "protobuf/src/google/protobuf/extension_set.h",
    "protobuf/src/google/protobuf/extension_set_inl.h",
    "protobuf/src/google/protobuf/field_access_listener.h",
    "protobuf/src/google/protobuf/field_mask.pb.h",
    "protobuf/src/google/protobuf/generated_enum_reflection.h",
    "protobuf/src/google/protobuf/generated_enum_util.cc",
    "protobuf/src/google/protobuf/generated_enum_util.h",
    "protobuf/src/google/protobuf/generated_message_bases.h",
    "protobuf/src/google/protobuf/generated_message_reflection.h",
    "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
    "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
    "protobuf/src/google/protobuf/generated_message_tctable_lite.cc",
    "protobuf/src/google/protobuf/generated_message_util.cc",
    "protobuf/src/google/protobuf/generated_message_util.h",
    "protobuf/src/google/protobuf/has_bits.h",
    "protobuf/src/google/protobuf/implicit_weak_message.cc",
    "protobuf/src/google/protobuf/implicit_weak_message.h",
    "protobuf/src/google/protobuf/inlined_string_field.cc",
    "protobuf/src/google/protobuf/inlined_string_field.h",
    "protobuf/src/google/protobuf/io/coded_stream.cc",
    "protobuf/src/google/protobuf/io/coded_stream.h",
    "protobuf/src/google/protobuf/io/io_win32.cc",
    "protobuf/src/google/protobuf/io/io_win32.h",
    "protobuf/src/google/protobuf/io/printer.h",
    "protobuf/src/google/protobuf/io/strtod.cc",
    "protobuf/src/google/protobuf/io/strtod.h",
    "protobuf/src/google/protobuf/io/tokenizer.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream.cc",
    "protobuf/src/google/protobuf/io/zero_copy_stream.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl.cc",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.cc",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
    "protobuf/src/google/protobuf/map.cc",
    "protobuf/src/google/protobuf/map.h",
    "protobuf/src/google/protobuf/map_entry.h",
    "protobuf/src/google/protobuf/map_entry_lite.h",
    "protobuf/src/google/protobuf/map_field.h",
    "protobuf/src/google/protobuf/map_field_inl.h",
    "protobuf/src/google/protobuf/map_field_lite.h",
    "protobuf/src/google/protobuf/map_type_handler.h",
    "protobuf/src/google/protobuf/message.h",
    "protobuf/src/google/protobuf/message_lite.cc",
    "protobuf/src/google/protobuf/message_lite.h",
    "protobuf/src/google/protobuf/metadata.h",
    "protobuf/src/google/protobuf/metadata_lite.h",
    "protobuf/src/google/protobuf/parse_context.cc",
    "protobuf/src/google/protobuf/parse_context.h",
    "protobuf/src/google/protobuf/port.h",
    "protobuf/src/google/protobuf/port_def.inc",
    "protobuf/src/google/protobuf/port_undef.inc",
    "protobuf/src/google/protobuf/reflection.h",
    "protobuf/src/google/protobuf/reflection_ops.h",
    "protobuf/src/google/protobuf/repeated_field.cc",
    "protobuf/src/google/protobuf/repeated_field.h",
    "protobuf/src/google/protobuf/repeated_ptr_field.cc",
    "protobuf/src/google/protobuf/repeated_ptr_field.h",
    "protobuf/src/google/protobuf/service.h",
    "protobuf/src/google/protobuf/source_context.pb.h",
    "protobuf/src/google/protobuf/string_member_robber.h",
    "protobuf/src/google/protobuf/struct.pb.h",
    "protobuf/src/google/protobuf/stubs/bytestream.cc",
    "protobuf/src/google/protobuf/stubs/bytestream.h",
    "protobuf/src/google/protobuf/stubs/callback.h",
    "protobuf/src/google/protobuf/stubs/casts.h",
    "protobuf/src/google/protobuf/stubs/common.cc",
    "protobuf/src/google/protobuf/stubs/common.h",
    "protobuf/src/google/protobuf/stubs/hash.h",
    "protobuf/src/google/protobuf/stubs/int128.cc",
    "protobuf/src/google/protobuf/stubs/int128.h",
    "protobuf/src/google/protobuf/stubs/logging.h",
    "protobuf/src/google/protobuf/stubs/macros.h",
    "protobuf/src/google/protobuf/stubs/map_util.h",
    "protobuf/src/google/protobuf/stubs/mathutil.h",
    "protobuf/src/google/protobuf/stubs/mutex.h",
    "protobuf/src/google/protobuf/stubs/once.h",
    "protobuf/src/google/protobuf/stubs/platform_macros.h",
    "protobuf/src/google/protobuf/stubs/port.h",
    "protobuf/src/google/protobuf/stubs/status.cc",
    "protobuf/src/google/protobuf/stubs/status.h",
    "protobuf/src/google/protobuf/stubs/status_macros.h",
    "protobuf/src/google/protobuf/stubs/statusor.cc",
    "protobuf/src/google/protobuf/stubs/statusor.h",
    "protobuf/src/google/protobuf/stubs/stl_util.h",
    "protobuf/src/google/protobuf/stubs/stringpiece.cc",
    "protobuf/src/google/protobuf/stubs/stringpiece.h",
    "protobuf/src/google/protobuf/stubs/stringprintf.cc",
    "protobuf/src/google/protobuf/stubs/stringprintf.h",
    "protobuf/src/google/protobuf/stubs/structurally_valid.cc",
    "protobuf/src/google/protobuf/stubs/strutil.cc",
    "protobuf/src/google/protobuf/stubs/strutil.h",
    "protobuf/src/google/protobuf/stubs/template_util.h",
    "protobuf/src/google/protobuf/stubs/time.cc",
    "protobuf/src/google/protobuf/stubs/time.h",
    "protobuf/src/google/protobuf/text_format.h",
    "protobuf/src/google/protobuf/timestamp.pb.h",
    "protobuf/src/google/protobuf/type.pb.h",
    "protobuf/src/google/protobuf/unknown_field_set.h",
    "protobuf/src/google/protobuf/util/delimited_message_util.h",
    "protobuf/src/google/protobuf/util/field_comparator.h",
    "protobuf/src/google/protobuf/util/field_mask_util.h",
    "protobuf/src/google/protobuf/util/json_util.h",
    "protobuf/src/google/protobuf/util/message_differencer.h",
    "protobuf/src/google/protobuf/util/time_util.h",
    "protobuf/src/google/protobuf/util/type_resolver.h",
    "protobuf/src/google/protobuf/util/type_resolver_util.h",
    "protobuf/src/google/protobuf/wire_format.h",
    "protobuf/src/google/protobuf/wire_format_lite.cc",
    "protobuf/src/google/protobuf/wire_format_lite.h",
    "protobuf/src/google/protobuf/wrappers.pb.h",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  if (is_win) {
    # Protobuf has its own #define WIN32_LEAN_AND_MEAN.
    configs -= [ "//gn/standalone:win32_lean_and_mean" ]
  }
  configs += [ ":protobuf_config" ]
  public_configs = [ "//gn:protobuf_gen_config" ]
  deps = [ "//gn:default_deps" ]
}

source_set("protobuf_full") {
  visibility = _buildtools_visibility
  deps = [
    ":protobuf_lite",
    "//gn:default_deps",
  ]
  sources = [
    "protobuf/src/google/protobuf/any.cc",
    "protobuf/src/google/protobuf/any.h",
    "protobuf/src/google/protobuf/any.pb.cc",
    "protobuf/src/google/protobuf/any.pb.h",
    "protobuf/src/google/protobuf/api.pb.cc",
    "protobuf/src/google/protobuf/api.pb.h",
    "protobuf/src/google/protobuf/arena.h",
    "protobuf/src/google/protobuf/arena_impl.h",
    "protobuf/src/google/protobuf/arenastring.h",
    "protobuf/src/google/protobuf/arenaz_sampler.h",
    "protobuf/src/google/protobuf/compiler/importer.cc",
    "protobuf/src/google/protobuf/compiler/importer.h",
    "protobuf/src/google/protobuf/compiler/parser.cc",
    "protobuf/src/google/protobuf/compiler/parser.h",
    "protobuf/src/google/protobuf/descriptor.cc",
    "protobuf/src/google/protobuf/descriptor.h",
    "protobuf/src/google/protobuf/descriptor.pb.cc",
    "protobuf/src/google/protobuf/descriptor.pb.h",
    "protobuf/src/google/protobuf/descriptor_database.cc",
    "protobuf/src/google/protobuf/descriptor_database.h",
    "protobuf/src/google/protobuf/duration.pb.cc",
    "protobuf/src/google/protobuf/duration.pb.h",
    "protobuf/src/google/protobuf/dynamic_message.cc",
    "protobuf/src/google/protobuf/dynamic_message.h",
    "protobuf/src/google/protobuf/empty.pb.cc",
    "protobuf/src/google/protobuf/empty.pb.h",
    "protobuf/src/google/protobuf/explicitly_constructed.h",
    "protobuf/src/google/protobuf/extension_set.h",
    "protobuf/src/google/protobuf/extension_set_heavy.cc",
    "protobuf/src/google/protobuf/extension_set_inl.h",
    "protobuf/src/google/protobuf/field_access_listener.h",
    "protobuf/src/google/protobuf/field_mask.pb.cc",
    "protobuf/src/google/protobuf/field_mask.pb.h",
    "protobuf/src/google/protobuf/generated_enum_reflection.h",
    "protobuf/src/google/protobuf/generated_enum_util.h",
    "protobuf/src/google/protobuf/generated_message_bases.cc",
    "protobuf/src/google/protobuf/generated_message_bases.h",
    "protobuf/src/google/protobuf/generated_message_reflection.cc",
    "protobuf/src/google/protobuf/generated_message_reflection.h",
    "protobuf/src/google/protobuf/generated_message_tctable_decl.h",
    "protobuf/src/google/protobuf/generated_message_tctable_full.cc",
    "protobuf/src/google/protobuf/generated_message_tctable_impl.h",
    "protobuf/src/google/protobuf/generated_message_util.h",
    "protobuf/src/google/protobuf/has_bits.h",
    "protobuf/src/google/protobuf/implicit_weak_message.h",
    "protobuf/src/google/protobuf/inlined_string_field.h",
    "protobuf/src/google/protobuf/io/coded_stream.h",
    "protobuf/src/google/protobuf/io/gzip_stream.cc",
    "protobuf/src/google/protobuf/io/io_win32.h",
    "protobuf/src/google/protobuf/io/printer.cc",
    "protobuf/src/google/protobuf/io/printer.h",
    "protobuf/src/google/protobuf/io/strtod.h",
    "protobuf/src/google/protobuf/io/tokenizer.cc",
    "protobuf/src/google/protobuf/io/tokenizer.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl.h",
    "protobuf/src/google/protobuf/io/zero_copy_stream_impl_lite.h",
    "protobuf/src/google/protobuf/map.h",
    "protobuf/src/google/protobuf/map_entry.h",
    "protobuf/src/google/protobuf/map_entry_lite.h",
    "protobuf/src/google/protobuf/map_field.cc",
    "protobuf/src/google/protobuf/map_field.h",
    "protobuf/src/google/protobuf/map_field_inl.h",
    "protobuf/src/google/protobuf/map_field_lite.h",
    "protobuf/src/google/protobuf/map_type_handler.h",
    "protobuf/src/google/protobuf/message.cc",
    "protobuf/src/google/protobuf/message.h",
    "protobuf/src/google/protobuf/message_lite.h",
    "protobuf/src/google/protobuf/metadata.h",
    "protobuf/src/google/protobuf/metadata_lite.h",
    "protobuf/src/google/protobuf/parse_context.h",
    "protobuf/src/google/protobuf/port.h",
    "protobuf/src/google/protobuf/port_def.inc",
    "protobuf/src/google/protobuf/port_undef.inc",
    "protobuf/src/google/protobuf/reflection.h",
    "protobuf/src/google/protobuf/reflection_internal.h",
    "protobuf/src/google/protobuf/reflection_ops.cc",
    "protobuf/src/google/protobuf/reflection_ops.h",
    "protobuf/src/google/protobuf/repeated_field.h",
    "protobuf/src/google/protobuf/repeated_ptr_field.h",
    "protobuf/src/google/protobuf/service.cc",
    "protobuf/src/google/protobuf/service.h",
    "protobuf/src/google/protobuf/source_context.pb.cc",
    "protobuf/src/google/protobuf/source_context.pb.h",
    "protobuf/src/google/protobuf/struct.pb.cc",
    "protobuf/src/google/protobuf/struct.pb.h",
    "protobuf/src/google/protobuf/stubs/bytestream.h",
    "protobuf/src/google/protobuf/stubs/callback.h",
    "protobuf/src/google/protobuf/stubs/casts.h",
    "protobuf/src/google/protobuf/stubs/common.h",
    "protobuf/src/google/protobuf/stubs/hash.h",
    "protobuf/src/google/protobuf/stubs/logging.h",
    "protobuf/src/google/protobuf/stubs/macros.h",
    "protobuf/src/google/protobuf/stubs/map_util.h",
    "protobuf/src/google/protobuf/stubs/mutex.h",
    "protobuf/src/google/protobuf/stubs/once.h",
    "protobuf/src/google/protobuf/stubs/platform_macros.h",
    "protobuf/src/google/protobuf/stubs/port.h",
    "protobuf/src/google/protobuf/stubs/status.h",
    "protobuf/src/google/protobuf/stubs/stl_util.h",
    "protobuf/src/google/protobuf/stubs/stringpiece.h",
    "protobuf/src/google/protobuf/stubs/strutil.h",
    "protobuf/src/google/protobuf/stubs/substitute.cc",
    "protobuf/src/google/protobuf/stubs/substitute.h",
    "protobuf/src/google/protobuf/stubs/template_util.h",
    "protobuf/src/google/protobuf/text_format.cc",
    "protobuf/src/google/protobuf/text_format.h",
    "protobuf/src/google/protobuf/timestamp.pb.cc",
    "protobuf/src/google/protobuf/timestamp.pb.h",
    "protobuf/src/google/protobuf/type.pb.cc",
    "protobuf/src/google/protobuf/type.pb.h",
    "protobuf/src/google/protobuf/unknown_field_set.cc",
    "protobuf/src/google/protobuf/unknown_field_set.h",
    "protobuf/src/google/protobuf/util/delimited_message_util.cc",
    "protobuf/src/google/protobuf/util/delimited_message_util.h",
    "protobuf/src/google/protobuf/util/field_comparator.cc",
    "protobuf/src/google/protobuf/util/field_comparator.h",
    "protobuf/src/google/protobuf/util/field_mask_util.cc",
    "protobuf/src/google/protobuf/util/field_mask_util.h",
    "protobuf/src/google/protobuf/util/internal/constants.h",
    "protobuf/src/google/protobuf/util/internal/datapiece.cc",
    "protobuf/src/google/protobuf/util/internal/datapiece.h",
    "protobuf/src/google/protobuf/util/internal/default_value_objectwriter.cc",
    "protobuf/src/google/protobuf/util/internal/default_value_objectwriter.h",
    "protobuf/src/google/protobuf/util/internal/error_listener.cc",
    "protobuf/src/google/protobuf/util/internal/error_listener.h",
    "protobuf/src/google/protobuf/util/internal/expecting_objectwriter.h",
    "protobuf/src/google/protobuf/util/internal/field_mask_utility.cc",
    "protobuf/src/google/protobuf/util/internal/field_mask_utility.h",
    "protobuf/src/google/protobuf/util/internal/json_escaping.cc",
    "protobuf/src/google/protobuf/util/internal/json_escaping.h",
    "protobuf/src/google/protobuf/util/internal/json_objectwriter.cc",
    "protobuf/src/google/protobuf/util/internal/json_objectwriter.h",
    "protobuf/src/google/protobuf/util/internal/json_stream_parser.cc",
    "protobuf/src/google/protobuf/util/internal/json_stream_parser.h",
    "protobuf/src/google/protobuf/util/internal/location_tracker.h",
    "protobuf/src/google/protobuf/util/internal/mock_error_listener.h",
    "protobuf/src/google/protobuf/util/internal/object_location_tracker.h",
    "protobuf/src/google/protobuf/util/internal/object_source.h",
    "protobuf/src/google/protobuf/util/internal/object_writer.cc",
    "protobuf/src/google/protobuf/util/internal/object_writer.h",
    "protobuf/src/google/protobuf/util/internal/proto_writer.cc",
    "protobuf/src/google/protobuf/util/internal/proto_writer.h",
    "protobuf/src/google/protobuf/util/internal/protostream_objectsource.cc",
    "protobuf/src/google/protobuf/util/internal/protostream_objectsource.h",
    "protobuf/src/google/protobuf/util/internal/protostream_objectwriter.cc",
    "protobuf/src/google/protobuf/util/internal/protostream_objectwriter.h",
    "protobuf/src/google/protobuf/util/internal/structured_objectwriter.h",
    "protobuf/src/google/protobuf/util/internal/type_info.cc",
    "protobuf/src/google/protobuf/util/internal/type_info.h",
    "protobuf/src/google/protobuf/util/internal/type_info_test_helper.h",
    "protobuf/src/google/protobuf/util/internal/utility.cc",
    "protobuf/src/google/protobuf/util/internal/utility.h",
    "protobuf/src/google/protobuf/util/json_util.cc",
    "protobuf/src/google/protobuf/util/json_util.h",
    "protobuf/src/google/protobuf/util/message_differencer.cc",
    "protobuf/src/google/protobuf/util/message_differencer.h",
    "protobuf/src/google/protobuf/util/time_util.cc",
    "protobuf/src/google/protobuf/util/time_util.h",
    "protobuf/src/google/protobuf/util/type_resolver.h",
    "protobuf/src/google/protobuf/util/type_resolver_util.cc",
    "protobuf/src/google/protobuf/util/type_resolver_util.h",
    "protobuf/src/google/protobuf/wire_format.cc",
    "protobuf/src/google/protobuf/wire_format.h",
    "protobuf/src/google/protobuf/wire_format_lite.h",
    "protobuf/src/google/protobuf/wrappers.pb.cc",
    "protobuf/src/google/protobuf/wrappers.pb.h",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  if (is_win) {
    # Protobuf has its own #define WIN32_LEAN_AND_MEAN.
    configs -= [ "//gn/standalone:win32_lean_and_mean" ]
  }
  configs += [ ":protobuf_config" ]
  public_configs = [
    "//gn:protobuf_gen_config",
    ":protobuf_full_public_config",
  ]
}

source_set("protoc_lib") {
  visibility = _buildtools_visibility
  deps = [
    ":protobuf_full",
    "//gn:default_deps",
  ]
  sources = [
    "protobuf/src/google/protobuf/compiler/code_generator.cc",
    "protobuf/src/google/protobuf/compiler/code_generator.h",
    "protobuf/src/google/protobuf/compiler/command_line_interface.cc",
    "protobuf/src/google/protobuf/compiler/command_line_interface.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_enum.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_enum.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_enum_field.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_extension.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_extension.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_field.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_file.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_file.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_generator.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_generator.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_helpers.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_map_field.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_message.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_message.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_message_field.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_message_layout_helper.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_names.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_options.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_padding_optimizer.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_parse_function_generator.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_primitive_field.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_service.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_service.h",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.cc",
    "protobuf/src/google/protobuf/compiler/cpp/cpp_string_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_doc_comment.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_enum_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_field_base.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_generator.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_helpers.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_map_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_message.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_message.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_message_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_names.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_options.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_primitive_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_reflection_class.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_enum_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_message_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_repeated_primitive_field.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_source_generator_base.h",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.cc",
    "protobuf/src/google/protobuf/compiler/csharp/csharp_wrapper_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_context.cc",
    "protobuf/src/google/protobuf/compiler/java/java_context.h",
    "protobuf/src/google/protobuf/compiler/java/java_doc_comment.cc",
    "protobuf/src/google/protobuf/compiler/java/java_doc_comment.h",
    "protobuf/src/google/protobuf/compiler/java/java_enum.cc",
    "protobuf/src/google/protobuf/compiler/java/java_enum.h",
    "protobuf/src/google/protobuf/compiler/java/java_enum_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_enum_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_enum_field_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_enum_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_enum_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_extension.cc",
    "protobuf/src/google/protobuf/compiler/java/java_extension.h",
    "protobuf/src/google/protobuf/compiler/java/java_extension_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_extension_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_file.cc",
    "protobuf/src/google/protobuf/compiler/java/java_file.h",
    "protobuf/src/google/protobuf/compiler/java/java_generator.cc",
    "protobuf/src/google/protobuf/compiler/java/java_generator.h",
    "protobuf/src/google/protobuf/compiler/java/java_generator_factory.cc",
    "protobuf/src/google/protobuf/compiler/java/java_generator_factory.h",
    "protobuf/src/google/protobuf/compiler/java/java_helpers.cc",
    "protobuf/src/google/protobuf/compiler/java/java_helpers.h",
    "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.cc",
    "protobuf/src/google/protobuf/compiler/java/java_kotlin_generator.h",
    "protobuf/src/google/protobuf/compiler/java/java_map_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_map_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_map_field_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_map_field_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_message.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message.h",
    "protobuf/src/google/protobuf/compiler/java/java_message_builder.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message_builder.h",
    "protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message_builder_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_message_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_message_field_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message_field_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_message_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_message_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_name_resolver.cc",
    "protobuf/src/google/protobuf/compiler/java/java_name_resolver.h",
    "protobuf/src/google/protobuf/compiler/java/java_names.h",
    "protobuf/src/google/protobuf/compiler/java/java_options.h",
    "protobuf/src/google/protobuf/compiler/java/java_primitive_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_primitive_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_primitive_field_lite.h",
    "protobuf/src/google/protobuf/compiler/java/java_service.cc",
    "protobuf/src/google/protobuf/compiler/java/java_service.h",
    "protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.cc",
    "protobuf/src/google/protobuf/compiler/java/java_shared_code_generator.h",
    "protobuf/src/google/protobuf/compiler/java/java_string_field.cc",
    "protobuf/src/google/protobuf/compiler/java/java_string_field.h",
    "protobuf/src/google/protobuf/compiler/java/java_string_field_lite.cc",
    "protobuf/src/google/protobuf/compiler/java/java_string_field_lite.h",
    "protobuf/src/google/protobuf/compiler/js/js_generator.cc",
    "protobuf/src/google/protobuf/compiler/js/js_generator.h",
    "protobuf/src/google/protobuf/compiler/js/well_known_types_embed.cc",
    "protobuf/src/google/protobuf/compiler/js/well_known_types_embed.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_enum_field.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_extension.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_field.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_file.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_generator.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_helpers.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_map_field.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_message_field.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_nsobject_methods.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_oneof.h",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.cc",
    "protobuf/src/google/protobuf/compiler/objectivec/objectivec_primitive_field.h",
    "protobuf/src/google/protobuf/compiler/php/php_generator.cc",
    "protobuf/src/google/protobuf/compiler/php/php_generator.h",
    "protobuf/src/google/protobuf/compiler/plugin.cc",
    "protobuf/src/google/protobuf/compiler/plugin.h",
    "protobuf/src/google/protobuf/compiler/plugin.pb.cc",
    "protobuf/src/google/protobuf/compiler/plugin.pb.h",
    "protobuf/src/google/protobuf/compiler/python/python_generator.cc",
    "protobuf/src/google/protobuf/compiler/python/python_generator.h",
    "protobuf/src/google/protobuf/compiler/python/python_helpers.cc",
    "protobuf/src/google/protobuf/compiler/python/python_helpers.h",
    "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.cc",
    "protobuf/src/google/protobuf/compiler/python/python_pyi_generator.h",
    "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.cc",
    "protobuf/src/google/protobuf/compiler/ruby/ruby_generator.h",
    "protobuf/src/google/protobuf/compiler/scc.h",
    "protobuf/src/google/protobuf/compiler/subprocess.cc",
    "protobuf/src/google/protobuf/compiler/subprocess.h",
    "protobuf/src/google/protobuf/compiler/zip_writer.cc",
    "protobuf/src/google/protobuf/compiler/zip_writer.h",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  if (is_win) {
    # Protobuf does has its own #define WIN32_LEAN_AND_MEAN.
    configs -= [ "//gn/standalone:win32_lean_and_mean" ]
  }
  configs += [ ":protobuf_config" ]
  public_configs = [
    "//gn:protobuf_gen_config",
    ":protobuf_full_public_config",
  ]
}

if (current_toolchain == host_toolchain) {
  executable("protoc") {
    visibility = _buildtools_visibility
    deps = [
      ":protoc_lib",
      "//gn:default_deps",
    ]
    sources = [ "protobuf/src/google/protobuf/compiler/main.cc" ]
    configs -= [ "//gn/standalone:extra_warnings" ]
    if (is_win) {
      # Protobuf does has its own #define WIN32_LEAN_AND_MEAN.
      configs -= [ "//gn/standalone:win32_lean_and_mean" ]
    }
  }
}  # host_toolchain

if (use_custom_libcxx) {
  config("libunwind_config") {
    defines = [ "_LIBUNWIND_IS_NATIVE_ONLY" ]
    cflags = [
      "-fstrict-aliasing",
      "-fPIC",

      # ValueAsBitPattern in Unwind-EHABI.cpp is only used on Debug builds.
      "-Wno-unused-function",

      # libunwind expects to be compiled with unwind tables so it can
      # unwind its own frames.
      "-funwind-tables",
    ]
  }

  source_set("libunwind") {
    visibility = _buildtools_visibility
    sources = [
      # C++ sources
      "libunwind/src/Unwind-EHABI.cpp",
      "libunwind/src/libunwind.cpp",

      # C sources
      "libunwind/src/Unwind-sjlj.c",
      "libunwind/src/UnwindLevel1-gcc-ext.c",
      "libunwind/src/UnwindLevel1.c",

      # ASM sources
      "libunwind/src/UnwindRegistersRestore.S",
      "libunwind/src/UnwindRegistersSave.S",
    ]
    include_dirs = [
      "libunwind/include",
      "libunwind/src",
    ]
    configs -= [
      "//gn/standalone:extra_warnings",
      "//gn/standalone:no_exceptions",
      "//gn/standalone:no_rtti",

      # When building with msan, libunwind itself triggers memory violations
      # that causes msan to get stuck into an infinite loop. Just don't
      # instrument libunwind itself.
      "//gn/standalone/sanitizers:sanitizers_cflags",
    ]
    configs += [
      "//gn/standalone/sanitizers:sanitizer_options_link_helper",

      ":libunwind_config",
    ]
  }

  # Config applied to both libc++ and libc++abi targets below.
  config("libc++config") {
    visibility = _buildtools_visibility
    cflags = [ "-fstrict-aliasing" ]
    if (is_win) {
      cflags += [
        # libc++ wants to redefine the macros WIN32_LEAN_AND_MEAN and
        # _CRT_RAND_S in its implementation.
        "-Wno-macro-redefined",
      ]
    } else {
      cflags += [ "-fPIC" ]
    }
    configs = [ "//gn/standalone:c++20" ]
    defines = [ "_LIBCPP_BUILDING_LIBRARY" ]
  }

  source_set("libc++abi") {
    visibility = _buildtools_visibility

    # Fuchsia builds don't link against any libraries that provide stack
    # unwinding symbols, unlike Linux does with glibc (same applies for
    # Android). Build and link against libunwind manually to get this
    # functionality.
    if (is_fuchsia || is_android) {
      deps = [ ":libunwind" ]
    }

    sources = [
      "libcxxabi/src/abort_message.cpp",
      "libcxxabi/src/cxa_aux_runtime.cpp",
      "libcxxabi/src/cxa_default_handlers.cpp",
      "libcxxabi/src/cxa_exception.cpp",
      "libcxxabi/src/cxa_exception_storage.cpp",
      "libcxxabi/src/cxa_handlers.cpp",

      # This file is supposed to be used in fno-exception builds of
      # libc++abi.  We build lib++/libc++abi with exceptions enabled.
      #"trunk/src/cxa_noexception.cpp",
      "libcxxabi/src/cxa_personality.cpp",
      "libcxxabi/src/cxa_vector.cpp",
      "libcxxabi/src/cxa_virtual.cpp",
      "libcxxabi/src/fallback_malloc.cpp",
      "libcxxabi/src/private_typeinfo.cpp",
      "libcxxabi/src/stdlib_exception.cpp",
      "libcxxabi/src/stdlib_stdexcept.cpp",
      "libcxxabi/src/stdlib_typeinfo.cpp",
    ]

    if (!is_tsan) {
      sources += [ "libcxxabi/src/cxa_guard.cpp" ]
    }

    # See the comment in cxa_demangle_stub.cc for why we don't use LLVM's
    # demangler on android.
    sources += [ "libcxxabi/src/cxa_demangle.cpp" ]

    if (is_fuchsia || is_android || is_linux) {
      sources += [ "libcxxabi/src/cxa_thread_atexit.cpp" ]
    }

    defines = [
      "LIBCXXABI_SILENT_TERMINATE",

      # TODO(crbug.com/1298070) _LIBCPP_CONSTINIT is defined in a libc++
      # revision more recent than the one currently used in Perfetto/Chrome.
      "_LIBCPP_CONSTINIT=constinit",
    ]

    configs -= [
      "//gn/standalone:extra_warnings",
      "//gn/standalone:no_exceptions",
      "//gn/standalone:no_rtti",
      "//gn/standalone:c++17",
    ]
    configs += [
      ":libc++config",
      "//gn/standalone/sanitizers:sanitizer_options_link_helper",
    ]
    if (!custom_libcxx_is_static) {
      configs -= [ "//gn/standalone:visibility_hidden" ]
    }

    # libc++abi depends on libc++ internals.
    include_dirs = [ "libcxx/src" ]
  }

  # Explicitly set version macros to Windows 7 to prevent libc++ from adding a
  # hard dependency on GetSystemTimePreciseAsFileTime, which was introduced in
  # Windows 8.
  config("libc++winver") {
    defines = [
      "NTDDI_VERSION=NTDDI_WIN7",
      "_WIN32_WINNT=_WIN32_WINNT_WIN7",
      "WINVER=_WIN32_WINNT_WIN7",
    ]
  }

  if (custom_libcxx_is_static) {
    libcxx_target_type = "source_set"
  } else {
    libcxx_target_type = "shared_library"
  }

  target(libcxx_target_type, "libc++") {
    visibility = _buildtools_visibility
    visibility += [ "../gn/standalone/libc++:*" ]

    if (is_linux && !is_clang) {
      libs = [ "atomic" ]
    }

    inputs = [ "libcxx_config/__config_site" ]

    sources = [
      "libcxx/src/algorithm.cpp",
      "libcxx/src/any.cpp",
      "libcxx/src/atomic.cpp",
      "libcxx/src/barrier.cpp",
      "libcxx/src/bind.cpp",
      "libcxx/src/charconv.cpp",
      "libcxx/src/chrono.cpp",
      "libcxx/src/condition_variable.cpp",
      "libcxx/src/condition_variable_destructor.cpp",
      "libcxx/src/exception.cpp",
      "libcxx/src/format.cpp",
      "libcxx/src/functional.cpp",
      "libcxx/src/future.cpp",
      "libcxx/src/hash.cpp",
      "libcxx/src/ios.cpp",
      "libcxx/src/ios.instantiations.cpp",
      "libcxx/src/iostream.cpp",
      "libcxx/src/legacy_pointer_safety.cpp",
      "libcxx/src/locale.cpp",
      "libcxx/src/memory.cpp",
      "libcxx/src/mutex.cpp",
      "libcxx/src/mutex_destructor.cpp",
      "libcxx/src/new.cpp",
      "libcxx/src/optional.cpp",
      "libcxx/src/random.cpp",
      "libcxx/src/random_shuffle.cpp",
      "libcxx/src/regex.cpp",
      "libcxx/src/ryu/d2fixed.cpp",
      "libcxx/src/ryu/d2s.cpp",
      "libcxx/src/ryu/f2s.cpp",
      "libcxx/src/shared_mutex.cpp",
      "libcxx/src/stdexcept.cpp",
      "libcxx/src/string.cpp",
      "libcxx/src/strstream.cpp",
      "libcxx/src/system_error.cpp",
      "libcxx/src/thread.cpp",
      "libcxx/src/typeinfo.cpp",
      "libcxx/src/utility.cpp",
      "libcxx/src/valarray.cpp",
      "libcxx/src/variant.cpp",
      "libcxx/src/vector.cpp",
      "libcxx/src/verbose_abort.cpp",
    ]

    include_dirs = [ "libcxx/src" ]
    if (is_win) {
      sources += [
        "libcxx/src/support/win32/locale_win32.cpp",
        "libcxx/src/support/win32/support.cpp",
        "libcxx/src/support/win32/thread_win32.cpp",
      ]
      configs += [ ":libc++winver" ]
    }
    configs -= [
      "//gn/standalone:extra_warnings",
      "//gn/standalone:no_exceptions",
      "//gn/standalone:no_rtti",
      "//gn/standalone:c++17",
    ]
    if ((is_android || is_mac) && !custom_libcxx_is_static) {
      # Use libc++_perfetto to avoid conflicting with system libc++
      output_name = "libc++_perfettto"
    }
    configs += [
      ":libc++config",
      "//gn/standalone/sanitizers:sanitizer_options_link_helper",
    ]
    if (!custom_libcxx_is_static) {
      configs -= [ "//gn/standalone:visibility_hidden" ]
    }

    defines = []
    if (custom_libcxx_is_static) {
      if (is_mac && is_clang) {
        # We want operator new/delete to be private on Mac, but these functions
        # are implicitly created by the compiler for each translation unit, as
        # specified in the C++ spec 3.7.4p2, which makes them always have
        # default visibility.  This option is needed to force hidden visibility
        # since -fvisibility=hidden doesn't have the desired effect.
        cflags = [ "-fvisibility-global-new-delete-hidden" ]
      } else {
        defines += [
          # This resets the visibility to default only for the various
          # flavors of operator new and operator delete.  These symbols
          # are weak and get overriden by Chromium-provided ones, but if
          # these symbols had hidden visibility, this would make the
          # Chromium symbols hidden too because elf visibility rules
          # require that linkers use the least visible form when merging,
          # and if this is hidden, then when we merge it with tcmalloc's
          # operator new, hidden visibility would win. However, tcmalloc
          # needs a visible operator new to also override operator new
          # references from system libraries.
          # TODO(lld): Ask lld for a --force-public-visibility flag or
          # similar to that overrides the default elf merging rules, and
          # make tcmalloc's gn config pass that to all its dependencies,
          # then remove this override here.
          "_LIBCPP_OVERRIDABLE_FUNC_VIS=__attribute__((__visibility__(\"default\")))",
        ]
      }
    }
    if (!is_mac && using_sanitizer && (is_asan || is_tsan || is_msan)) {
      # In {a,t,m}san configurations, operator new and operator delete will be
      # provided by the sanitizer runtime library.  Since libc++ defines these
      # symbols with weak linkage, and the *san runtime uses strong linkage, it
      # should technically be OK to omit this, but it's added to be explicit.
      defines += [ "_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS" ]
    }

    if (!is_win) {
      defines += [ "LIBCXX_BUILDING_LIBCXXABI" ]
      deps = [ ":libc++abi" ]
    }
  }
}  # if (use_custom_libcxx)

config("benchmark_config") {
  visibility = _buildtools_visibility
  include_dirs = [ "benchmark/include" ]
  configs = [ ":test_warning_suppressions" ]
}

source_set("benchmark") {
  visibility = _buildtools_visibility
  testonly = true
  sources = [
    "benchmark/include/benchmark/benchmark.h",
    "benchmark/src/arraysize.h",
    "benchmark/src/benchmark.cc",
    "benchmark/src/benchmark_api_internal.cc",
    "benchmark/src/benchmark_api_internal.h",
    "benchmark/src/benchmark_name.cc",
    "benchmark/src/benchmark_register.cc",
    "benchmark/src/benchmark_register.h",
    "benchmark/src/benchmark_runner.cc",
    "benchmark/src/benchmark_runner.h",
    "benchmark/src/check.h",
    "benchmark/src/colorprint.cc",
    "benchmark/src/colorprint.h",
    "benchmark/src/commandlineflags.cc",
    "benchmark/src/commandlineflags.h",
    "benchmark/src/complexity.cc",
    "benchmark/src/complexity.h",
    "benchmark/src/console_reporter.cc",
    "benchmark/src/counter.cc",
    "benchmark/src/counter.h",
    "benchmark/src/csv_reporter.cc",
    "benchmark/src/cycleclock.h",
    "benchmark/src/internal_macros.h",
    "benchmark/src/json_reporter.cc",
    "benchmark/src/log.h",
    "benchmark/src/mutex.h",
    "benchmark/src/perf_counters.cc",
    "benchmark/src/perf_counters.h",
    "benchmark/src/re.h",
    "benchmark/src/reporter.cc",
    "benchmark/src/sleep.cc",
    "benchmark/src/sleep.h",
    "benchmark/src/statistics.cc",
    "benchmark/src/statistics.h",
    "benchmark/src/string_util.cc",
    "benchmark/src/string_util.h",
    "benchmark/src/sysinfo.cc",
    "benchmark/src/thread_manager.h",
    "benchmark/src/thread_timer.h",
    "benchmark/src/timers.cc",
    "benchmark/src/timers.h",
  ]
  defines = [ "HAVE_POSIX_REGEX" ]
  public_configs = [ ":benchmark_config" ]
  all_dependent_configs = [ ":benchmark_config" ]
  if (!is_win) {
    cflags = [ "-Wno-deprecated-declarations" ]
  }
  configs -= [ "//gn/standalone:extra_warnings" ]
  deps = [ "//gn:default_deps" ]
}

# On Linux/Android use libbacktrace in debug builds for better stacktraces.
if (is_linux || is_android) {
  config("libbacktrace_config") {
    visibility = _buildtools_visibility
    include_dirs = [
      "libbacktrace_config",
      "libbacktrace",
    ]
    cflags = [
      # We force include this config file because "config.h" is too generic as a
      # file name and on some platforms #include "config.h" ends up colliding
      # importing some other project's config.h.
      "-include",
      rebase_path("libbacktrace_config/config.h", root_build_dir),
    ]
  }

  source_set("libbacktrace") {
    visibility = _buildtools_visibility
    sources = [
      "libbacktrace/dwarf.c",
      "libbacktrace/elf.c",
      "libbacktrace/fileline.c",
      "libbacktrace/mmap.c",
      "libbacktrace/mmapio.c",
      "libbacktrace/posix.c",
      "libbacktrace/sort.c",
      "libbacktrace/state.c",
    ]
    configs -= [ "//gn/standalone:extra_warnings" ]
    public_configs = [ ":libbacktrace_config" ]
    deps = [ "//gn:default_deps" ]
  }
}

config("sqlite_config") {
  visibility = _buildtools_visibility
  include_dirs = [ "sqlite" ]
  cflags = [
    "-DSQLITE_THREADSAFE=0",
    "-DSQLITE_DEFAULT_MEMSTATUS=0",
    "-DSQLITE_LIKE_DOESNT_MATCH_BLOBS",
    "-DSQLITE_OMIT_DEPRECATED",
    "-DSQLITE_OMIT_SHARED_CACHE",
    "-DHAVE_USLEEP",
    "-DHAVE_UTIME",
    "-DSQLITE_BYTEORDER=1234",
    "-DSQLITE_DEFAULT_AUTOVACUUM=0",
    "-DSQLITE_DEFAULT_MMAP_SIZE=0",
    "-DSQLITE_CORE",
    "-DSQLITE_TEMP_STORE=3",
    "-DSQLITE_OMIT_LOAD_EXTENSION",
    "-DSQLITE_OMIT_RANDOMNESS",
    "-DSQLITE_OMIT_AUTOINIT",
    "-DSQLITE_ENABLE_JSON1",
  ]
  if (is_clang && is_win) {
    # SQLite uses __int64 which clang complains about unless
    # we specify this flag.
    cflags += [ "-Wno-language-extension-token" ]
  }
}

source_set("sqlite") {
  visibility = _buildtools_visibility
  if (perfetto_use_system_sqlite) {
    # Use the system sqlite library instead of the hermetic one.
    libs = [ "sqlite3" ]
  } else {
    sources = [
      "sqlite/sqlite3.c",
      "sqlite/sqlite3.h",
      "sqlite/sqlite3ext.h",
      "sqlite_src/ext/misc/percentile.c",
    ]
  }
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":sqlite_config" ]
  deps = [ "//gn:default_deps" ]
}

source_set("lzma") {
  visibility = _buildtools_visibility
  defines = [ "_7ZIP_ST" ]
  sources = [
    "lzma/C/7zAlloc.c",
    "lzma/C/7zArcIn.c",
    "lzma/C/7zBuf.c",
    "lzma/C/7zBuf2.c",
    "lzma/C/7zCrc.c",
    "lzma/C/7zCrcOpt.c",
    "lzma/C/7zDec.c",
    "lzma/C/7zFile.c",
    "lzma/C/7zStream.c",
    "lzma/C/Aes.c",
    "lzma/C/AesOpt.c",
    "lzma/C/Alloc.c",
    "lzma/C/Bcj2.c",
    "lzma/C/Bra.c",
    "lzma/C/Bra86.c",
    "lzma/C/BraIA64.c",
    "lzma/C/CpuArch.c",
    "lzma/C/Delta.c",
    "lzma/C/LzFind.c",
    "lzma/C/Lzma2Dec.c",
    "lzma/C/Lzma2Enc.c",
    "lzma/C/Lzma86Dec.c",
    "lzma/C/Lzma86Enc.c",
    "lzma/C/LzmaDec.c",
    "lzma/C/LzmaEnc.c",
    "lzma/C/LzmaLib.c",
    "lzma/C/Ppmd7.c",
    "lzma/C/Ppmd7Dec.c",
    "lzma/C/Ppmd7Enc.c",
    "lzma/C/Sha256.c",
    "lzma/C/Sort.c",
    "lzma/C/Xz.c",
    "lzma/C/XzCrc64.c",
    "lzma/C/XzCrc64Opt.c",
    "lzma/C/XzDec.c",
    "lzma/C/XzEnc.c",
    "lzma/C/XzIn.c",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  cflags = [
    "-Wno-empty-body",
    "-Wno-enum-conversion",
  ]
  deps = [ "//gn:default_deps" ]
}

source_set("zlib") {
  visibility = _buildtools_visibility
  sources = [
    "zlib/adler32.c",
    "zlib/chromeconf.h",
    "zlib/compress.c",
    "zlib/contrib/optimizations/insert_string.h",
    "zlib/cpu_features.c",
    "zlib/cpu_features.h",
    "zlib/crc32.c",
    "zlib/crc32.h",
    "zlib/deflate.c",
    "zlib/deflate.h",
    "zlib/gzclose.c",
    "zlib/gzguts.h",
    "zlib/gzlib.c",
    "zlib/gzread.c",
    "zlib/gzwrite.c",
    "zlib/infback.c",
    "zlib/inffast.c",
    "zlib/inffast.h",
    "zlib/inffixed.h",
    "zlib/inflate.c",
    "zlib/inflate.h",
    "zlib/inftrees.c",
    "zlib/inftrees.h",
    "zlib/trees.c",
    "zlib/trees.h",
    "zlib/uncompr.c",
    "zlib/zconf.h",
    "zlib/zlib.h",
    "zlib/zutil.c",
    "zlib/zutil.h",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":zlib_config" ]
  deps = [ "//gn:default_deps" ]

  if (is_win) {
    defines = [ "X86_WINDOWS" ]
  }

  # TODO(primiano): look into ADLER32_SIMD_SSSE3 and other SIMD optimizations
  # (from chromium's third_party/zlib/BUILD.gn).
}

config("zlib_config") {
  visibility = _buildtools_visibility
  defines = [
    "ZLIB_IMPLEMENTATION",
    "CHROMIUM_ZLIB_NO_CHROMECONF",
  ]
  cflags = [
    # Using -isystem instead of include_dirs (-I), so we don't need to suppress
    # warnings coming from third-party headers. Doing so would mask warnings in
    # our own code.
    perfetto_isystem_cflag,
    rebase_path("zlib", root_build_dir),
  ]
  if (is_clang) {
    cflags += [
      "-Wno-unknown-warning-option",
      "-Wno-deprecated-non-prototype",
    ]
  }
}

# Here be dragons. Used only by standalone profiler builds, which are
# considered best effort. Since the headers use c++17 features, this source_set
# pushes -std=c++17 flags up the dependency tree, whereas the rest of the
# project continues to build under c++11. So the profilers end up linking
# together code built under different standards, and rely on that to be ABI
# compatible.
source_set("libunwindstack") {
  visibility = _buildtools_visibility
  include_dirs = [
    "android-unwinding/libunwindstack/include",
    "android-unwinding/libunwindstack",
    "android-libbase/include",
    "android-logging/liblog/include",
    "android-libprocinfo/include",
    "android-core/include",
    "android-core/libcutils/include",
    "bionic/libc/async_safe/include",
    "bionic/libc/platform/",
    "lzma/C",
  ]
  deps = [
    ":lzma",
    "//gn:default_deps",
  ]
  sources = [
    "android-libbase/file.cpp",
    "android-libbase/stringprintf.cpp",
    "android-libbase/strings.cpp",
    "android-unwinding/libunwindstack/ArmExidx.cpp",
    "android-unwinding/libunwindstack/DwarfCfa.cpp",
    "android-unwinding/libunwindstack/DwarfEhFrameWithHdr.cpp",
    "android-unwinding/libunwindstack/DwarfMemory.cpp",
    "android-unwinding/libunwindstack/DwarfOp.cpp",
    "android-unwinding/libunwindstack/DwarfSection.cpp",
    "android-unwinding/libunwindstack/Elf.cpp",
    "android-unwinding/libunwindstack/ElfInterface.cpp",
    "android-unwinding/libunwindstack/ElfInterfaceArm.cpp",
    "android-unwinding/libunwindstack/Global.cpp",
    "android-unwinding/libunwindstack/JitDebug.cpp",
    "android-unwinding/libunwindstack/MapInfo.cpp",
    "android-unwinding/libunwindstack/Maps.cpp",
    "android-unwinding/libunwindstack/Memory.cpp",
    "android-unwinding/libunwindstack/MemoryXz.cpp",
    "android-unwinding/libunwindstack/Regs.cpp",
    "android-unwinding/libunwindstack/RegsArm.cpp",
    "android-unwinding/libunwindstack/RegsArm64.cpp",
    "android-unwinding/libunwindstack/RegsMips.cpp",
    "android-unwinding/libunwindstack/RegsMips64.cpp",
    "android-unwinding/libunwindstack/RegsRiscv64.cpp",
    "android-unwinding/libunwindstack/RegsX86.cpp",
    "android-unwinding/libunwindstack/RegsX86_64.cpp",
    "android-unwinding/libunwindstack/Symbols.cpp",
    "android-unwinding/libunwindstack/Unwinder.cpp",
  ]
  if (!is_android) {
    sources += [
      "android-libbase/liblog_symbols.cpp",
      "android-libbase/logging.cpp",
      "android-libbase/threads.cpp",
      "android-logging/liblog/logger_write.cpp",
      "android-logging/liblog/properties.cpp",
      "android-unwinding/libunwindstack/LogStdout.cpp",
      "android-unwinding/libunwindstack/MemoryMte.cpp",
    ]
  } else {
    sources += [ "android-unwinding/libunwindstack/LogAndroid.cpp" ]
  }
  if (current_cpu == "x86") {
    sources += [ "android-unwinding/libunwindstack/AsmGetRegsX86.S" ]
  } else if (current_cpu == "x64") {
    sources += [ "android-unwinding/libunwindstack/AsmGetRegsX86_64.S" ]
  }
  configs -= [
    "//gn/standalone:extra_warnings",
    "//gn/standalone:visibility_hidden",
  ]
  cflags = [ "-DFAKE_LOG_DEVICE=1" ]
  if (!is_win) {
    cflags += [ "-Wno-deprecated-declarations" ]
  }
  public_configs = [ ":libunwindstack_config" ]
}

config("bionic_kernel_uapi_headers") {
  visibility = _buildtools_visibility
  cflags = [
    perfetto_isystem_cflag,
    rebase_path("bionic/libc/kernel", root_build_dir),
  ]
}

config("jsoncpp_config") {
  visibility = _buildtools_visibility
  cflags = [ "-DJSON_USE_EXCEPTION=0" ]
  cflags += [
    # Using -isystem instead of include_dirs (-I), so we don't need to suppress
    # warnings coming from third-party headers. Doing so would mask warnings in
    # our own code.
    perfetto_isystem_cflag,
    rebase_path("jsoncpp/include", root_build_dir),
  ]
  if (!is_win) {
    cflags += [ "-Wno-deprecated-declarations" ]
  }
  if (is_clang && is_win) {
    # JSON uses __int64 which clang complains about unless we specify this flag.
    cflags += [ "-Wno-language-extension-token" ]
  }
}

source_set("jsoncpp") {
  visibility = _buildtools_visibility
  sources = [
    "jsoncpp/src/lib_json/json_reader.cpp",
    "jsoncpp/src/lib_json/json_value.cpp",
    "jsoncpp/src/lib_json/json_writer.cpp",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":jsoncpp_config" ]
  deps = [ "//gn:default_deps" ]
}

config("linenoise_config") {
  visibility = _buildtools_visibility
  cflags = [
    # Using -isystem instead of include_dirs (-I), so we don't need to suppress
    # warnings coming from third-party headers. Doing so would mask warnings in
    # our own code.
    perfetto_isystem_cflag,
    rebase_path("linenoise", root_build_dir),
  ]
}

source_set("linenoise") {
  visibility = _buildtools_visibility
  sources = [
    "linenoise/linenoise.c",
    "linenoise/linenoise.h",
  ]
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":linenoise_config" ]
  cflags = [ "-Wno-tautological-unsigned-zero-compare" ]
  deps = [ "//gn:default_deps" ]
}

if (use_libfuzzer) {
  source_set("libfuzzer") {
    visibility = _buildtools_visibility
    configs -= [
      "//gn/standalone:extra_warnings",
      "//gn/standalone/sanitizers:sanitizers_cflags",
    ]
    sources = [
      "libfuzzer/FuzzerCrossOver.cpp",
      "libfuzzer/FuzzerDataFlowTrace.cpp",
      "libfuzzer/FuzzerDriver.cpp",
      "libfuzzer/FuzzerExtFunctionsDlsym.cpp",
      "libfuzzer/FuzzerExtFunctionsWeak.cpp",
      "libfuzzer/FuzzerExtFunctionsWindows.cpp",
      "libfuzzer/FuzzerExtraCounters.cpp",
      "libfuzzer/FuzzerFork.cpp",
      "libfuzzer/FuzzerIO.cpp",
      "libfuzzer/FuzzerIOPosix.cpp",
      "libfuzzer/FuzzerIOWindows.cpp",
      "libfuzzer/FuzzerLoop.cpp",
      "libfuzzer/FuzzerMain.cpp",
      "libfuzzer/FuzzerMerge.cpp",
      "libfuzzer/FuzzerMutate.cpp",
      "libfuzzer/FuzzerSHA1.cpp",
      "libfuzzer/FuzzerTracePC.cpp",
      "libfuzzer/FuzzerUtil.cpp",
      "libfuzzer/FuzzerUtilDarwin.cpp",
      "libfuzzer/FuzzerUtilFuchsia.cpp",
      "libfuzzer/FuzzerUtilLinux.cpp",
      "libfuzzer/FuzzerUtilPosix.cpp",
      "libfuzzer/FuzzerUtilWindows.cpp",
    ]
    deps = [ "//gn:default_deps" ]
  }
}

config("llvm_demangle_config") {
  visibility = _buildtools_visibility
  include_dirs = [ "llvm-project/llvm/include" ]
}

source_set("llvm_demangle") {
  visibility = _buildtools_visibility
  configs -= [ "//gn/standalone:extra_warnings" ]
  public_configs = [ ":llvm_demangle_config" ]
  sources = [
    "llvm-project/llvm/include/llvm/Demangle/Demangle.h",
    "llvm-project/llvm/include/llvm/Demangle/DemangleConfig.h",
    "llvm-project/llvm/include/llvm/Demangle/ItaniumDemangle.h",
    "llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangle.h",
    "llvm-project/llvm/include/llvm/Demangle/MicrosoftDemangleNodes.h",
    "llvm-project/llvm/include/llvm/Demangle/StringView.h",
    "llvm-project/llvm/include/llvm/Demangle/Utility.h",
    "llvm-project/llvm/lib/Demangle/DLangDemangle.cpp",
    "llvm-project/llvm/lib/Demangle/Demangle.cpp",
    "llvm-project/llvm/lib/Demangle/ItaniumDemangle.cpp",
    "llvm-project/llvm/lib/Demangle/MicrosoftDemangle.cpp",
    "llvm-project/llvm/lib/Demangle/MicrosoftDemangleNodes.cpp",
    "llvm-project/llvm/lib/Demangle/RustDemangle.cpp",
  ]
  deps = [ "//gn:default_deps" ]
}

if (enable_perfetto_grpc) {
  config("grpc_absl_config") {
    visibility = _buildtools_visibility
    include_dirs = [ "grpc/src/third_party/abseil-cpp" ]
    cflags = [ "-Wno-deprecated-builtins" ]
  }

  config("grpc_boringssl_config") {
    visibility = _buildtools_visibility
    include_dirs = [ "grpc/src/third_party/boringssl-with-bazel/src/include" ]
  }

  config("grpc_upb_config") {
    visibility = _buildtools_visibility
    include_dirs = [
      "grpc/src/third_party/upb",
      "grpc/src/src/core/ext/upb-generated",
      "grpc/src/src/core/ext/upbdefs-generated",
    ]
  }

  config("grpc_re2_config") {
    visibility = _buildtools_visibility
    include_dirs = [ "grpc/src/third_party/re2" ]
  }

  config("grpc_internal_config") {
    visibility = _buildtools_visibility
    include_dirs = [
      "grpc/src/include",
      "grpc/src",
      "grpc/src/third_party/address_sorting/include",
      "grpc/src/third_party/re2",
      "grpc/src/src/core/ext/upb-generated",
      "grpc/src/src/core/ext/upbdefs-generated",
      "grpc/src/third_party/xxhash",
    ]
    cflags = [ "-DGRPC_ARES=0" ]
  }

  config("grpc_gen_config") {
    cflags = [
      # Using -isystem instead of include_dirs (-I), so we don't need to
      # suppress warnings coming from libprotobuf headers. Doing so would mask
      # warnings in our own code.
      perfetto_isystem_cflag,
      rebase_path("grpc/src/include", root_build_dir),
      perfetto_isystem_cflag,
      rebase_path("grpc/src/third_party/abseil-cpp", root_build_dir),
    ]

    # This issues appear in .grpc.pb.h files so we unfortunately need to leak
    # the cflags outside of just compiling this code.
    if (is_clang && !is_win) {
      cflags += [
        "-Wno-weak-vtables",
        "-Wno-suggest-destructor-override",
      ]
    }
  }
}
