# Copyright 2021 The Dawn & Tint Authors
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# 1. Redistributions of source code must retain the above copyright notice, this
#    list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright notice,
#    this list of conditions and the following disclaimer in the documentation
#    and/or other materials provided with the distribution.
#
# 3. Neither the name of the copyright holder nor the names of its
#    contributors may be used to endorse or promote products derived from
#    this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This file exists for two reasons:
# a) it allows for when using Dawn outside of Chromium to only include
#    the minimal amount of abseil needed (Chromium already includes
#    all of abseil, so there is no need to minimize there)
# b) addresses the fact that the BUILD.gn files supplied via Chromium
#    for abseill are opinionated on exactly where the checkout of
#    abseil should be, and some embedders (i.e. Skia) use a different
#    location.

import("../../../scripts/dawn_overrides_with_defaults.gni")

import("${dawn_root}/scripts/dawn_features.gni")

config("absl_config") {
  if (!build_with_chromium && is_clang) {
    cflags = [
      # Allow the use of enable_if()
      "-Wno-gcc-compat",
      "-Wno-unreachable-code-break",

      # Allows use of _Nullable, _Nonnull & _Null_unspecified
      "-Wno-nullability-extension",

      # vlog has some shadowing, which Windows Clang doesn't like
      "-Wno-shadow",
    ]
  }

  include_dirs = [ "${dawn_abseil_dir}" ]
}

template("absl_source_set") {
  source_set(target_name) {
    forward_variables_from(invoker, "*")

    if (!defined(public_configs)) {
      public_configs = []
    }
    public_configs += [ ":absl_config" ]
  }
}

#
# absl
#

# Includes only what is defined in this file, not all deps from the
# original abseil GN file. If there are missing dependencies when
# using this target that indicates they need to be ported over.
#
# DO NOT DEPEND ON THIS IN DAWN CODE
#
# This exists only for third party dependencies that need it. When
# using abseil in Dawn, use depend directly on the target that is
# needed
source_set("absl") {
  public_deps = [ ":absl_component_deps" ]
}

# Commented out deps are targets that exist in the original BUILD.gn,
# but currently do not have an equivalent here. DO NOT just uncomment
# them, since that will cause symbol duplication issues. The rules
# will need to be ported to this file to use.
group("absl_component_deps") {
  public_deps = [
    ":absl_check",
    ":absl_log",
    ":absl_vlog_is_on",
    ":algorithm",
    ":any_invocable",
    ":base",
    ":bits",
    ":cleanup",
    ":config",
    ":container",
    ":cord",
    ":core_headers",
    ":die_if_null",

    # "//third_party/abseil-cpp/absl/container:btree",
    ":fixed_array",
    ":flat_hash_map",
    ":flat_hash_set",

    # "//third_party/abseil-cpp/absl/functional:bind_front",
    ":function_ref",
    ":has_ostream_operator",

    # "//third_party/abseil-cpp/absl/functional:overload",
    ":hash",
    ":inlined_vector",
    ":int128",
    ":log_entry",
    ":log_globals",
    ":log_initialize",
    ":log_severity",
    ":log_sink",
    ":log_sink_registry",
    ":memory",
    ":no_destructor",
    ":nullability",
    ":optional",
    ":prefetch",
    ":span",

    # "//third_party/abseil-cpp/absl/container:node_hash_map",
    # "//third_party/abseil-cpp/absl/container:node_hash_set",
    # "//third_party/abseil-cpp/absl/debugging:failure_signal_handler",
    ":stacktrace",

    # "//third_party/abseil-cpp/absl/random",
    # "//third_party/abseil-cpp/absl/random:bit_gen_ref",
    # "//third_party/abseil-cpp/absl/random:distributions",
    ":status",
    ":statusor",
    ":str_format",
    ":string_view",
    ":strings",
    ":symbolize",
    ":synchronization",
    ":time",
    ":type_traits",
    ":utility",
    ":variant",
  ]

  # Dependencies that preferably shouldn't be public in chromium.
  public_deps += [
    # public in abseil, but deprecated in chromium, yet used.
    ":dynamic_annotations",

    # base/logging.cc uses this non-public absl dependency while there no better
    # alternative to inject abort hook. See notes in `base/logging.cc`.
    ":raw_logging_internal",

    # absl internal utilities used by protobuf.
    ":if_constexpr",
    ":layout",
  ]

  if (is_component_build) {
    public_deps += [ ":absl_full_deps" ]
  }

  # The following dependencies currently don't build with NaCl.
  # TODO(https://crbug.com/1114625): Fix build errors and remove this section.
  #
  # Note: This target currently is not implemented in this file, so
  # this logic is disabled, if :failure_signal_handler gets ported
  # this will need to be re-enabled
  # if (is_nacl) {
  #   public_deps -=
  #       [ "//third_party/abseil-cpp/absl/debugging:failure_signal_handler" ]
  # }
}

# The 'absl_full' target is not implemented here, since it includes a
# bunch of targets that are generally not allowed in Chromium.  If you
# think you need to add it in, because a dependency uses it, seriously
# consider if you can avoid doing that, since it will likely be a lot
# of effort to implement, and opens the door to should we just fork
# the entire GN structure from upstream.
#
# Examples of of how to avoid implementing this, there are custom
# build rules for googletest in standalone builds, and a stub fuzztest
# BUILD.gn.

# Commented out deps are targets that exist in the original BUILD.gn,
# but currently do not have an equivalent here. DO NOT just uncomment
# them, since that will cause symbol duplication issues. The rules
# will need to be ported to this file to use.
group("absl_full_deps") {
  public_deps = [
    # Banned because each flag registration generates a static initializer, and
    # the flag registration mechanism is problematic in component builds.
    # "//third_party/abseil-cpp/absl/flags:config",
    # "//third_party/abseil-cpp/absl/flags:flag",
    # "//third_party/abseil-cpp/absl/flags:parse",
    # "//third_party/abseil-cpp/absl/flags:reflection",
    # "//third_party/abseil-cpp/absl/flags:usage",

    # Banned because the LOG and CHECK macros conflict with Chrome's version of
    # those macros.
    ":log",
    ":check",
  ]
  # public_configs = [ "//third_party/abseil-cpp/absl/flags:absl_flags_config" ]
}

#
# absl/algorithm
#

absl_source_set("algorithm") {
  public = [ "${dawn_abseil_dir}/absl/algorithm/algorithm.h" ]
  deps = [ ":config" ]
}

absl_source_set("container") {
  public = [ "${dawn_abseil_dir}/absl/algorithm/container.h" ]
  public_deps = [
    ":algorithm",
    ":core_headers",
    ":nullability",
    ":type_traits",
  ]
}

#
# absl/base
#

absl_source_set("atomic_hook") {
  public = [ "${dawn_abseil_dir}/absl/base/internal/atomic_hook.h" ]
  public_deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("base") {
  sources = [
    "${dawn_abseil_dir}/absl/base/internal/cycleclock.cc",
    "${dawn_abseil_dir}/absl/base/internal/spinlock.cc",
    "${dawn_abseil_dir}/absl/base/internal/sysinfo.cc",
    "${dawn_abseil_dir}/absl/base/internal/thread_identity.cc",
    "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/base/call_once.h",
    "${dawn_abseil_dir}/absl/base/casts.h",
    "${dawn_abseil_dir}/absl/base/internal/cycleclock.h",
    "${dawn_abseil_dir}/absl/base/internal/low_level_scheduling.h",
    "${dawn_abseil_dir}/absl/base/internal/per_thread_tls.h",
    "${dawn_abseil_dir}/absl/base/internal/spinlock.h",
    "${dawn_abseil_dir}/absl/base/internal/sysinfo.h",
    "${dawn_abseil_dir}/absl/base/internal/thread_identity.h",
    "${dawn_abseil_dir}/absl/base/internal/tsan_mutex_interface.h",
    "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock.h",
  ]

  public_deps = [
    ":atomic_hook",
    ":base_internal",
    ":config",
    ":core_headers",
    ":cycleclock_internal",
    ":dynamic_annotations",
    ":log_severity",
    ":nullability",
    ":raw_logging_internal",
    ":spinlock_wait",
    ":type_traits",
  ]
}

absl_source_set("base_internal") {
  public = [
    "${dawn_abseil_dir}/absl/base/internal/hide_ptr.h",
    "${dawn_abseil_dir}/absl/base/internal/identity.h",
    "${dawn_abseil_dir}/absl/base/internal/inline_variable.h",
    "${dawn_abseil_dir}/absl/base/internal/invoke.h",
    "${dawn_abseil_dir}/absl/base/internal/scheduling_mode.h",
  ]
  public_deps = [
    ":config",
    ":type_traits",
  ]
}

absl_source_set("config") {
  public = [
    "${dawn_abseil_dir}/absl/base/config.h",
    "${dawn_abseil_dir}/absl/base/options.h",
    "${dawn_abseil_dir}/absl/base/policy_checks.h",
  ]
}

absl_source_set("core_headers") {
  public = [
    "${dawn_abseil_dir}/absl/base/attributes.h",
    "${dawn_abseil_dir}/absl/base/const_init.h",
    "${dawn_abseil_dir}/absl/base/macros.h",
    "${dawn_abseil_dir}/absl/base/optimization.h",
    "${dawn_abseil_dir}/absl/base/port.h",
    "${dawn_abseil_dir}/absl/base/thread_annotations.h",
  ]
  public_deps = [ ":config" ]
}

absl_source_set("cycleclock_internal") {
  public = [
    "${dawn_abseil_dir}/absl/base/internal/cycleclock_config.h",
    "${dawn_abseil_dir}/absl/base/internal/unscaledcycleclock_config.h",
  ]
  deps = [
    ":base_internal",
    ":config",
  ]
}

absl_source_set("dynamic_annotations") {
  public = [ "${dawn_abseil_dir}/absl/base/dynamic_annotations.h" ]

  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("endian") {
  public = [
    "${dawn_abseil_dir}/absl/base/internal/endian.h",
    "${dawn_abseil_dir}/absl/base/internal/unaligned_access.h",
  ]
  public_deps = [
    ":base",
    ":config",
    ":core_headers",
  ]
}

absl_source_set("errno_saver") {
  public = [ "${dawn_abseil_dir}/absl/base/internal/errno_saver.h" ]
  public_deps = [ ":config" ]
}

absl_source_set("log_severity") {
  sources = [ "${dawn_abseil_dir}/absl/base/log_severity.cc" ]
  public = [ "${dawn_abseil_dir}/absl/base/log_severity.h" ]
  public_deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("malloc_internal") {
  sources = [ "${dawn_abseil_dir}/absl/base/internal/low_level_alloc.cc" ]
  public = [
    "${dawn_abseil_dir}/absl/base/internal/direct_mmap.h",
    "${dawn_abseil_dir}/absl/base/internal/low_level_alloc.h",
  ]
  public_deps = [
    ":base",
    ":base_internal",
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":raw_logging_internal",
  ]
}

absl_source_set("no_destructor") {
  public = [ "${dawn_abseil_dir}/absl/base/no_destructor.h" ]
  deps = [
    ":config",
    ":nullability",
  ]
}

absl_source_set("nullability") {
  sources = [ "${dawn_abseil_dir}/absl/base/internal/nullability_impl.h" ]
  public = [ "${dawn_abseil_dir}/absl/base/nullability.h" ]
  deps = [
    ":core_headers",
    ":type_traits",
  ]
}

absl_source_set("prefetch") {
  public = [ "${dawn_abseil_dir}/absl/base/prefetch.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("raw_logging_internal") {
  sources = [ "${dawn_abseil_dir}/absl/base/internal/raw_logging.cc" ]
  public = [ "${dawn_abseil_dir}/absl/base/internal/raw_logging.h" ]
  public_deps = [
    ":atomic_hook",
    ":core_headers",
    ":errno_saver",
    ":log_severity",
  ]
}

absl_source_set("spinlock_wait") {
  sources = [
    "${dawn_abseil_dir}/absl/base/internal/spinlock_akaros.inc",
    "${dawn_abseil_dir}/absl/base/internal/spinlock_linux.inc",
    "${dawn_abseil_dir}/absl/base/internal/spinlock_posix.inc",
    "${dawn_abseil_dir}/absl/base/internal/spinlock_wait.cc",
    "${dawn_abseil_dir}/absl/base/internal/spinlock_win32.inc",
  ]
  public = [ "${dawn_abseil_dir}/absl/base/internal/spinlock_wait.h" ]
  deps = [
    ":base_internal",
    ":core_headers",
    ":errno_saver",
  ]
}

absl_source_set("strerror") {
  sources = [ "${dawn_abseil_dir}/absl/base/internal/strerror.cc" ]
  public = [ "${dawn_abseil_dir}/absl/base/internal/strerror.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":errno_saver",
  ]
}

absl_source_set("throw_delegate") {
  sources = [ "${dawn_abseil_dir}/absl/base/internal/throw_delegate.cc" ]
  public = [ "${dawn_abseil_dir}/absl/base/internal/throw_delegate.h" ]
  public_deps = [ ":raw_logging_internal" ]
}

absl_source_set("tracing_internal") {
  public = [ "${dawn_abseil_dir}/absl/base/internal/tracing.h" ]
  sources = [ "${dawn_abseil_dir}/absl/base/internal/tracing.cc" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

#
# absl/cleanup
#

absl_source_set("cleanup") {
  public = [ "${dawn_abseil_dir}/absl/cleanup/cleanup.h" ]
  deps = [
    ":cleanup_internal",
    ":config",
    ":core_headers",
  ]
}

absl_source_set("cleanup_internal") {
  public = [ "${dawn_abseil_dir}/absl/cleanup/internal/cleanup.h" ]
  deps = [
    ":base_internal",
    ":core_headers",
    ":utility",
  ]
}

#
# absl/container
#

absl_source_set("common") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/common.h" ]
  deps = [
    ":optional",
    ":type_traits",
  ]
}

absl_source_set("common_policy_traits") {
  public =
      [ "${dawn_abseil_dir}/absl/container/internal/common_policy_traits.h" ]
  deps = [ ":type_traits" ]
}

absl_source_set("compressed_tuple") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/compressed_tuple.h" ]
  deps = [ ":utility" ]
}

absl_source_set("container_memory") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/container_memory.h" ]
  deps = [
    ":config",
    ":memory",
    ":type_traits",
    ":utility",
  ]
}

absl_source_set("fixed_array") {
  public = [ "${dawn_abseil_dir}/absl/container/fixed_array.h" ]
  deps = [
    ":algorithm",
    ":compressed_tuple",
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":memory",
    ":throw_delegate",
  ]
}

absl_source_set("flat_hash_map") {
  public = [ "${dawn_abseil_dir}/absl/container/flat_hash_map.h" ]
  deps = [
    ":container",
    ":container_memory",
    ":core_headers",
    ":hash_function_defaults",
    ":memory",
    ":raw_hash_map",
  ]
}

absl_source_set("flat_hash_set") {
  public = [ "${dawn_abseil_dir}/absl/container/flat_hash_set.h" ]
  deps = [
    ":container",
    ":container_memory",
    ":core_headers",
    ":hash_function_defaults",
    ":memory",
    ":raw_hash_set",
  ]
}

absl_source_set("hash_function_defaults") {
  public =
      [ "${dawn_abseil_dir}/absl/container/internal/hash_function_defaults.h" ]
  deps = [
    ":common",
    ":config",
    ":cord",
    ":hash",
    ":string_view",
    ":type_traits",
  ]
}

absl_source_set("hash_policy_traits") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/hash_policy_traits.h" ]
  public_deps = [
    ":common_policy_traits",
    ":type_traits",
  ]
}

absl_source_set("hashtable_debug_hooks") {
  public =
      [ "${dawn_abseil_dir}/absl/container/internal/hashtable_debug_hooks.h" ]
  deps = [ ":config" ]
}

absl_source_set("hashtablez_sampler") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler.h" ]
  sources = [
    "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler.cc",
    "${dawn_abseil_dir}/absl/container/internal/hashtablez_sampler_force_weak_definition.cc",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":exponential_biased",
    ":memory",
    ":no_destructor",
    ":raw_logging_internal",
    ":sample_recorder",
    ":stacktrace",
    ":synchronization",
    ":time",
    ":tracing_internal",
    ":utility",
  ]
}

absl_source_set("inlined_vector") {
  public = [ "${dawn_abseil_dir}/absl/container/inlined_vector.h" ]
  deps = [
    ":algorithm",
    ":core_headers",
    ":inlined_vector_internal",
    ":memory",
    ":throw_delegate",
    ":type_traits",
  ]
}

absl_source_set("inlined_vector_internal") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/inlined_vector.h" ]
  deps = [
    ":base_internal",
    ":compressed_tuple",
    ":config",
    ":core_headers",
    ":memory",
    ":span",
    ":type_traits",
  ]
}

absl_source_set("layout") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/layout.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":demangle_internal",
    ":span",
    ":strings",
    ":type_traits",
    ":utility",
  ]
}

absl_source_set("raw_hash_map") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_map.h" ]
  deps = [
    ":container_memory",
    ":raw_hash_set",
    ":throw_delegate",
  ]
}

absl_source_set("raw_hash_set") {
  sources = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_set.cc" ]
  public = [ "${dawn_abseil_dir}/absl/container/internal/raw_hash_set.h" ]
  deps = [
    ":bits",
    ":common",
    ":compressed_tuple",
    ":config",
    ":container_memory",
    ":core_headers",
    ":dynamic_annotations",
    ":endian",
    ":function_ref",
    ":hash",
    ":hash_function_defaults",
    ":hash_policy_traits",
    ":hashtable_debug_hooks",
    ":hashtablez_sampler",
    ":memory",
    ":prefetch",
    ":raw_logging_internal",
    ":type_traits",
    ":utility",
  ]
}

#
# absl/crc
#

absl_source_set("crc32c") {
  public = [
    "${dawn_abseil_dir}/absl/crc/crc32c.h",
    "${dawn_abseil_dir}/absl/crc/internal/crc32c.h",
    "${dawn_abseil_dir}/absl/crc/internal/crc_memcpy.h",
  ]
  sources = [
    "${dawn_abseil_dir}/absl/crc/crc32c.cc",
    "${dawn_abseil_dir}/absl/crc/internal/crc32c_inline.h",
    "${dawn_abseil_dir}/absl/crc/internal/crc_memcpy_fallback.cc",
    "${dawn_abseil_dir}/absl/crc/internal/crc_memcpy_x86_arm_combined.cc",
    "${dawn_abseil_dir}/absl/crc/internal/crc_non_temporal_memcpy.cc",
  ]
  deps = [
    ":config",
    ":core_headers",
    ":cpu_detect",
    ":crc_internal",
    ":endian",
    ":non_temporal_memcpy",
    ":prefetch",
    ":str_format",
    ":string_view",
  ]
}

absl_source_set("crc_internal") {
  public = [
    "${dawn_abseil_dir}/absl/crc/internal/crc.h",
    "${dawn_abseil_dir}/absl/crc/internal/crc32_x86_arm_combined_simd.h",
  ]
  sources = [
    "${dawn_abseil_dir}/absl/crc/internal/crc.cc",
    "${dawn_abseil_dir}/absl/crc/internal/crc_internal.h",
    "${dawn_abseil_dir}/absl/crc/internal/crc_x86_arm_combined.cc",
  ]
  deps = [
    ":bits",
    ":config",
    ":core_headers",
    ":cpu_detect",
    ":endian",
    ":memory",
    ":prefetch",
    ":raw_logging_internal",
  ]
}

absl_source_set("cpu_detect") {
  public = [ "${dawn_abseil_dir}/absl/crc/internal/cpu_detect.h" ]
  sources = [ "${dawn_abseil_dir}/absl/crc/internal/cpu_detect.cc" ]
  deps = [
    ":base",
    ":config",
    ":optional",
  ]
}

absl_source_set("crc_cord_state") {
  public = [ "${dawn_abseil_dir}/absl/crc/internal/crc_cord_state.h" ]
  sources = [ "${dawn_abseil_dir}/absl/crc/internal/crc_cord_state.cc" ]
  deps = [
    ":bits",
    ":config",
    ":crc32c",
    ":no_destructor",
  ]
}

absl_source_set("non_temporal_arm_intrinsics") {
  public =
      [ "${dawn_abseil_dir}/absl/crc/internal/non_temporal_arm_intrinsics.h" ]
  deps = [ ":config" ]
}

absl_source_set("non_temporal_memcpy") {
  public = [ "${dawn_abseil_dir}/absl/crc/internal/non_temporal_memcpy.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":non_temporal_arm_intrinsics",
  ]
}

#
# absl/debugging
#

absl_source_set("debugging_internal") {
  sources = [
    "${dawn_abseil_dir}/absl/debugging/internal/address_is_readable.cc",
    "${dawn_abseil_dir}/absl/debugging/internal/elf_mem_image.cc",
    "${dawn_abseil_dir}/absl/debugging/internal/vdso_support.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/debugging/internal/address_is_readable.h",
    "${dawn_abseil_dir}/absl/debugging/internal/elf_mem_image.h",
    "${dawn_abseil_dir}/absl/debugging/internal/vdso_support.h",
  ]
  deps = [
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":errno_saver",
    ":raw_logging_internal",
  ]
}

absl_source_set("bounded_utf8_length_sequence") {
  public = [
    "${dawn_abseil_dir}/absl/debugging/internal/bounded_utf8_length_sequence.h",
  ]
  deps = [
    ":bits",
    ":config",
  ]
}

absl_source_set("decode_rust_punycode") {
  sources =
      [ "${dawn_abseil_dir}/absl/debugging/internal/decode_rust_punycode.cc" ]
  public =
      [ "${dawn_abseil_dir}/absl/debugging/internal/decode_rust_punycode.h" ]
  deps = [
    ":bounded_utf8_length_sequence",
    ":config",
    ":nullability",
    ":utf8_for_code_point",
  ]
}

absl_source_set("demangle_internal") {
  sources = [
    "${dawn_abseil_dir}/absl/debugging/internal/demangle.cc",
    "${dawn_abseil_dir}/absl/debugging/internal/demangle_rust.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/debugging/internal/demangle.h",
    "${dawn_abseil_dir}/absl/debugging/internal/demangle_rust.h",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":decode_rust_punycode",
  ]
}

absl_source_set("examine_stack") {
  sources = [ "${dawn_abseil_dir}/absl/debugging/internal/examine_stack.cc" ]
  public = [ "${dawn_abseil_dir}/absl/debugging/internal/examine_stack.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":raw_logging_internal",
    ":stacktrace",
    ":symbolize",
  ]
}

absl_source_set("leak_check") {
  sources = [ "${dawn_abseil_dir}/absl/debugging/leak_check.cc" ]
  public = [ "${dawn_abseil_dir}/absl/debugging/leak_check.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("stacktrace") {
  sources = [
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_aarch64-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_arm-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_config.h",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_emscripten-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_generic-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_powerpc-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_riscv-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_unimplemented-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_win32-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/internal/stacktrace_x86-inl.inc",
    "${dawn_abseil_dir}/absl/debugging/stacktrace.cc",
  ]
  public = [ "${dawn_abseil_dir}/absl/debugging/stacktrace.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":debugging_internal",
    ":dynamic_annotations",
    ":raw_logging_internal",
  ]
}

absl_source_set("symbolize") {
  sources = [
    "${dawn_abseil_dir}/absl/debugging/symbolize.cc",
    "${dawn_abseil_dir}/absl/debugging/symbolize_darwin.inc",
    "${dawn_abseil_dir}/absl/debugging/symbolize_elf.inc",
    "${dawn_abseil_dir}/absl/debugging/symbolize_emscripten.inc",
    "${dawn_abseil_dir}/absl/debugging/symbolize_unimplemented.inc",
    "${dawn_abseil_dir}/absl/debugging/symbolize_win32.inc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/debugging/internal/symbolize.h",
    "${dawn_abseil_dir}/absl/debugging/symbolize.h",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":debugging_internal",
    ":demangle_internal",
    ":dynamic_annotations",
    ":malloc_internal",
    ":raw_logging_internal",
    ":string_view",
    ":strings",
  ]
}

#
# absl/functional
#

absl_source_set("any_invocable") {
  sources = [ "${dawn_abseil_dir}/absl/functional/internal/any_invocable.h" ]
  public = [ "${dawn_abseil_dir}/absl/functional/any_invocable.h" ]
  deps = [
    ":base_internal",
    ":config",
    ":core_headers",
    ":type_traits",
    ":utility",
  ]
}

absl_source_set("function_ref") {
  sources = [ "${dawn_abseil_dir}/absl/functional/internal/function_ref.h" ]
  public = [ "${dawn_abseil_dir}/absl/functional/function_ref.h" ]
  deps = [
    ":any_invocable",
    ":base_internal",
    ":core_headers",
    ":type_traits",
  ]
}

absl_source_set("utf8_for_code_point") {
  sources =
      [ "${dawn_abseil_dir}/absl/debugging/internal/utf8_for_code_point.cc" ]
  public =
      [ "${dawn_abseil_dir}/absl/debugging/internal/utf8_for_code_point.h" ]
  deps = [ ":config" ]
}

#
# absl/hash
#

absl_source_set("city") {
  public = [ "${dawn_abseil_dir}/absl/hash/internal/city.h" ]
  sources = [ "${dawn_abseil_dir}/absl/hash/internal/city.cc" ]
  deps = [
    ":config",
    ":core_headers",
    ":endian",
  ]
}

absl_source_set("hash") {
  sources = [
    "${dawn_abseil_dir}/absl/hash/internal/hash.cc",
    "${dawn_abseil_dir}/absl/hash/internal/hash.h",
  ]
  public = [ "${dawn_abseil_dir}/absl/hash/hash.h" ]
  deps = [
    ":bits",
    ":city",
    ":config",
    ":core_headers",
    ":endian",
    ":fixed_array",
    ":function_ref",
    ":int128",
    ":low_level_hash",
    ":optional",
    ":string_view",
    ":type_traits",
    ":utility",
    ":variant",
  ]
}

absl_source_set("low_level_hash") {
  public = [ "${dawn_abseil_dir}/absl/hash/internal/low_level_hash.h" ]
  sources = [ "${dawn_abseil_dir}/absl/hash/internal/low_level_hash.cc" ]
  deps = [
    ":config",
    ":endian",
    ":int128",
    ":prefetch",
  ]
}

#
# absl/log
#

absl_source_set("log") {
  public = [ "${dawn_abseil_dir}/absl/log/log.h" ]
  deps = [
    ":log_impl",
    ":vlog_is_on",
  ]
}

# There are seperated absl/log:globals and absl/log/internal:globals
# targets in the original GN files. Renamed to log_global and
# _log_global respectively.

absl_source_set("log_globals") {
  sources = [ "${dawn_abseil_dir}/absl/log/globals.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/globals.h" ]
  deps = [
    ":atomic_hook",
    ":config",
    ":core_headers",
    ":hash",
    ":log_severity",
    ":raw_logging_internal",
    ":string_view",
    ":vlog_config",
  ]
}

absl_source_set("_log_globals") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/globals.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/globals.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":log_severity",
    ":raw_logging_internal",
    ":string_view",
    ":strings",
    ":time",
  ]
}

absl_source_set("log_config") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/config.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("absl_check") {
  public = [ "${dawn_abseil_dir}/absl/log/absl_check.h" ]
  deps = [ ":check_impl" ]
}

absl_source_set("absl_log") {
  public = [ "${dawn_abseil_dir}/absl/log/absl_log.h" ]
  deps = [ ":log_impl" ]
}

absl_source_set("absl_vlog_is_on") {
  public = [ "${dawn_abseil_dir}/absl/log/absl_vlog_is_on.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":strings",
    ":vlog_config",
  ]
}

absl_source_set("append_truncated") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/append_truncated.h" ]
  deps = [
    ":config",
    ":span",
    ":string_view",
  ]
}

absl_source_set("check") {
  public = [ "${dawn_abseil_dir}/absl/log/check.h" ]
  deps = [
    ":check_impl",
    ":check_op",
    ":conditions",
    ":log_message",
    ":strip",
  ]
}

absl_source_set("check_impl") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/check_impl.h" ]
  deps = [
    ":check_op",
    ":conditions",
    ":core_headers",
    ":log_message",
    ":strip",
  ]
}

absl_source_set("check_op") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/check_op.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/check_op.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":leak_check",
    ":nullability",
    ":nullguard",
    ":nullstream",
    ":strings",
    ":strip",
  ]
}

absl_source_set("conditions") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/conditions.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/conditions.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":voidify",
  ]
}

absl_source_set("die_if_null") {
  sources = [ "${dawn_abseil_dir}/absl/log/die_if_null.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/die_if_null.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":log",
    ":strings",
  ]
}

absl_source_set("fnmatch") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/fnmatch.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/fnmatch.h" ]
  deps = [
    ":config",
    ":strings",
  ]
}

absl_source_set("format") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/log_format.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/log_format.h" ]
  deps = [
    ":_log_globals",
    ":append_truncated",
    ":config",
    ":core_headers",
    ":log_config",
    ":log_severity",
    ":span",
    ":str_format",
    ":string_view",
    ":strings",
    ":time",
  ]
}

absl_source_set("log_initialize") {
  sources = [ "${dawn_abseil_dir}/absl/log/initialize.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/initialize.h" ]
  deps = [
    ":_log_globals",
    ":config",
    ":log_globals",
    ":time",
  ]
}

absl_source_set("log_entry") {
  sources = [ "${dawn_abseil_dir}/absl/log/log_entry.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/log_entry.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":log_config",
    ":log_severity",
    ":span",
    ":string_view",
    ":time",
  ]
}

absl_source_set("log_impl") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/log_impl.h" ]
  deps = [
    ":absl_vlog_is_on",
    ":conditions",
    ":log_message",
    ":strip",
  ]
}

absl_source_set("log_message") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/log_message.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/log_message.h" ]
  deps = [
    ":_log_globals",
    ":_log_globals",
    ":append_truncated",
    ":base",
    ":config",
    ":core_headers",
    ":errno_saver",
    ":examine_stack",
    ":format",
    ":inlined_vector",
    ":log_entry",
    ":log_globals",
    ":log_severity",
    ":log_sink",
    ":log_sink_registry",
    ":log_sink_set",
    ":memory",
    ":nullability",
    ":nullguard",
    ":proto",
    ":raw_logging_internal",
    ":span",
    ":strerror",
    ":string_view",
    ":strings",
    ":structured_proto",
    ":time",
  ]
}

absl_source_set("log_sink") {
  sources = [ "${dawn_abseil_dir}/absl/log/log_sink.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/log_sink.h" ]
  deps = [
    ":config",
    ":log_entry",
  ]
}

absl_source_set("log_sink_registry") {
  public = [ "${dawn_abseil_dir}/absl/log/log_sink_registry.h" ]
  deps = [
    ":config",
    ":log_sink",
    ":log_sink_set",
    ":nullability",
  ]
}

absl_source_set("log_sink_set") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/log_sink_set.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/log_sink_set.h" ]
  deps = [
    ":_log_globals",
    ":base",
    ":cleanup",
    ":config",
    ":core_headers",
    ":log_config",
    ":log_entry",
    ":log_globals",
    ":log_severity",
    ":log_sink",
    ":no_destructor",
    ":raw_logging_internal",
    ":span",
    ":string_view",
    ":synchronization",
  ]
  if (is_android) {
    libs = [ "log" ]
  }
}

absl_source_set("nullguard") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/nullguard.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/nullguard.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("nullstream") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/nullstream.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":log_severity",
    ":string_view",
  ]
}

absl_source_set("proto") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/proto.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/proto.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":span",
    ":string_view",
  ]
}

absl_source_set("strip") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/strip.h" ]
  deps = [
    ":core_headers",
    ":log_message",
    ":log_severity",
    ":nullstream",
  ]
}

absl_source_set("structured_proto") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/structured_proto.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/structured_proto.h" ]
  deps = [
    ":config",
    ":proto",
    ":span",
    ":strings",
    ":variant",
  ]
}

absl_source_set("vlog_config") {
  sources = [ "${dawn_abseil_dir}/absl/log/internal/vlog_config.cc" ]
  public = [ "${dawn_abseil_dir}/absl/log/internal/vlog_config.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":fnmatch",
    ":memory",
    ":no_destructor",
    ":optional",
    ":strings",
    ":synchronization",
  ]
}

absl_source_set("vlog_is_on") {
  public = [ "${dawn_abseil_dir}/absl/log/vlog_is_on.h" ]
  deps = [ ":absl_vlog_is_on" ]
}

absl_source_set("voidify") {
  public = [ "${dawn_abseil_dir}/absl/log/internal/voidify.h" ]
  deps = [ ":config" ]
}

#
# absl/memory
#

absl_source_set("memory") {
  public = [ "${dawn_abseil_dir}/absl/memory/memory.h" ]
  deps = [
    ":core_headers",
    ":type_traits",
  ]
}

#
# absl/meta
#

absl_source_set("type_traits") {
  public = [ "${dawn_abseil_dir}/absl/meta/type_traits.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

#
# absl/numeric
#

absl_source_set("bits") {
  public = [
    "${dawn_abseil_dir}/absl/numeric/bits.h",
    "${dawn_abseil_dir}/absl/numeric/internal/bits.h",
  ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("int128") {
  sources = [
    "${dawn_abseil_dir}/absl/numeric/int128.cc",
    "${dawn_abseil_dir}/absl/numeric/int128_have_intrinsic.inc",
    "${dawn_abseil_dir}/absl/numeric/int128_no_intrinsic.inc",
  ]
  public = [ "${dawn_abseil_dir}/absl/numeric/int128.h" ]
  deps = [
    ":bits",
    ":compare",
    ":config",
    ":core_headers",
  ]
}

#
# absl/profiling
#

absl_source_set("exponential_biased") {
  sources =
      [ "${dawn_abseil_dir}/absl/profiling/internal/exponential_biased.cc" ]
  public = [ "${dawn_abseil_dir}/absl/profiling/internal/exponential_biased.h" ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

absl_source_set("sample_recorder") {
  public = [ "${dawn_abseil_dir}/absl/profiling/internal/sample_recorder.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":synchronization",
    ":time",
  ]
}

#
# absl/strings
#

absl_source_set("strings") {
  sources = [
    "${dawn_abseil_dir}/absl/strings/ascii.cc",
    "${dawn_abseil_dir}/absl/strings/charconv.cc",
    "${dawn_abseil_dir}/absl/strings/escaping.cc",
    "${dawn_abseil_dir}/absl/strings/internal/charconv_bigint.cc",
    "${dawn_abseil_dir}/absl/strings/internal/charconv_bigint.h",
    "${dawn_abseil_dir}/absl/strings/internal/charconv_parse.cc",
    "${dawn_abseil_dir}/absl/strings/internal/charconv_parse.h",
    "${dawn_abseil_dir}/absl/strings/internal/memutil.cc",
    "${dawn_abseil_dir}/absl/strings/internal/memutil.h",
    "${dawn_abseil_dir}/absl/strings/internal/stl_type_traits.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_join_internal.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_split_internal.h",
    "${dawn_abseil_dir}/absl/strings/internal/stringify_sink.cc",
    "${dawn_abseil_dir}/absl/strings/internal/stringify_sink.h",
    "${dawn_abseil_dir}/absl/strings/match.cc",
    "${dawn_abseil_dir}/absl/strings/numbers.cc",
    "${dawn_abseil_dir}/absl/strings/str_cat.cc",
    "${dawn_abseil_dir}/absl/strings/str_replace.cc",
    "${dawn_abseil_dir}/absl/strings/str_split.cc",
    "${dawn_abseil_dir}/absl/strings/substitute.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/strings/ascii.h",
    "${dawn_abseil_dir}/absl/strings/charconv.h",
    "${dawn_abseil_dir}/absl/strings/escaping.h",
    "${dawn_abseil_dir}/absl/strings/internal/string_constant.h",
    "${dawn_abseil_dir}/absl/strings/match.h",
    "${dawn_abseil_dir}/absl/strings/numbers.h",
    "${dawn_abseil_dir}/absl/strings/str_cat.h",
    "${dawn_abseil_dir}/absl/strings/str_join.h",
    "${dawn_abseil_dir}/absl/strings/str_replace.h",
    "${dawn_abseil_dir}/absl/strings/str_split.h",
    "${dawn_abseil_dir}/absl/strings/strip.h",
    "${dawn_abseil_dir}/absl/strings/substitute.h",
  ]
  public_deps = [
    ":base",
    ":bits",
    ":endian",
    ":int128",
    ":raw_logging_internal",
    ":string_view",
    ":strings_internal",
    ":throw_delegate",
    ":type_traits",
  ]
}

absl_source_set("cord") {
  sources = [
    "${dawn_abseil_dir}/absl/strings/cord.cc",
    "${dawn_abseil_dir}/absl/strings/cord_analysis.cc",
    "${dawn_abseil_dir}/absl/strings/cord_analysis.h",
    "${dawn_abseil_dir}/absl/strings/cord_buffer.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/strings/cord.h",
    "${dawn_abseil_dir}/absl/strings/cord_buffer.h",
  ]
  deps = [
    ":bits",
    ":compare",
    ":config",
    ":cord_internal",
    ":cordz_info",
    ":cordz_update_scope",
    ":cordz_update_tracker",
    ":core_headers",
    ":crc32c",
    ":crc_cord_state",
    ":endian",
    ":function_ref",
    ":inlined_vector",
    ":nullability",
    ":optional",
    ":raw_logging_internal",
    ":span",
    ":string_view",
    ":strings",
    ":strings_internal",
    ":type_traits",
  ]
}

absl_source_set("cord_internal") {
  sources = [
    "${dawn_abseil_dir}/absl/strings/internal/cord_internal.cc",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree.cc",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree_navigator.cc",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree_reader.cc",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_consume.cc",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_crc.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/strings/internal/cord_data_edge.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_internal.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree_navigator.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_btree_reader.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_consume.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_crc.h",
    "${dawn_abseil_dir}/absl/strings/internal/cord_rep_flat.h",
  ]
  visibility = [ ":*" ]
  deps = [
    ":base_internal",
    ":compressed_tuple",
    ":config",
    ":container_memory",
    ":core_headers",
    ":crc_cord_state",
    ":endian",
    ":function_ref",
    ":inlined_vector",
    ":nullability",
    ":raw_logging_internal",
    ":span",
    ":string_view",
    ":strings",
  ]
}

absl_source_set("cordz_functions") {
  sources = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_functions.cc" ]
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_functions.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":exponential_biased",
    ":raw_logging_internal",
  ]
}

absl_source_set("cordz_handle") {
  sources = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_handle.cc" ]
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_handle.h" ]
  deps = [
    ":config",
    ":no_destructor",
    ":raw_logging_internal",
    ":synchronization",
  ]
}

absl_source_set("cordz_info") {
  sources = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_info.cc" ]
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_info.h" ]
  deps = [
    ":base",
    ":config",
    ":cord_internal",
    ":cordz_functions",
    ":cordz_handle",
    ":cordz_statistics",
    ":cordz_update_tracker",
    ":core_headers",
    ":inlined_vector",
    ":raw_logging_internal",
    ":span",
    ":stacktrace",
    ":synchronization",
    ":time",
  ]
}

absl_source_set("cordz_statistics") {
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_statistics.h" ]
  deps = [
    ":config",
    ":cordz_update_tracker",
  ]
}

absl_source_set("cordz_update_scope") {
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_update_scope.h" ]
  deps = [
    ":config",
    ":cord_internal",
    ":cordz_info",
    ":cordz_update_tracker",
    ":core_headers",
  ]
}

absl_source_set("cordz_update_tracker") {
  public = [ "${dawn_abseil_dir}/absl/strings/internal/cordz_update_tracker.h" ]
  deps = [ ":config" ]
}

absl_source_set("has_ostream_operator") {
  public = [ "${dawn_abseil_dir}/absl/strings/has_ostream_operator.h" ]
  deps = [ ":config" ]
}

absl_source_set("strings_internal") {
  sources = [
    "${dawn_abseil_dir}/absl/strings/internal/escaping.cc",
    "${dawn_abseil_dir}/absl/strings/internal/ostringstream.cc",
    "${dawn_abseil_dir}/absl/strings/internal/utf8.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/strings/internal/escaping.h",
    "${dawn_abseil_dir}/absl/strings/internal/ostringstream.h",
    "${dawn_abseil_dir}/absl/strings/internal/resize_uninitialized.h",
    "${dawn_abseil_dir}/absl/strings/internal/utf8.h",
  ]
  deps = [
    ":endian",
    ":raw_logging_internal",
    ":type_traits",
  ]
}

absl_source_set("string_view") {
  sources = [ "${dawn_abseil_dir}/absl/strings/string_view.cc" ]
  public = [ "${dawn_abseil_dir}/absl/strings/string_view.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":throw_delegate",
  ]
}

absl_source_set("str_format") {
  public = [ "${dawn_abseil_dir}/absl/strings/str_format.h" ]
  deps = [
    ":core_headers",
    ":nullability",
    ":span",
    ":str_format_internal",
    ":string_view",
  ]
}

absl_source_set("str_format_internal") {
  sources = [
    "${dawn_abseil_dir}/absl/strings/internal/str_format/arg.cc",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/bind.cc",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/extension.cc",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/float_conversion.cc",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/output.cc",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/parser.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/strings/internal/str_format/arg.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/bind.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/checker.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/extension.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/float_conversion.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/output.h",
    "${dawn_abseil_dir}/absl/strings/internal/str_format/parser.h",
  ]
  deps = [
    ":bits",
    ":config",
    ":core_headers",
    ":fixed_array",
    ":function_ref",
    ":inlined_vector",
    ":int128",
    ":optional",
    ":span",
    ":string_view",
    ":strings",
    ":type_traits",
    ":utility",
  ]
}

#
# absl/status
#

absl_source_set("status") {
  public = [
    "${dawn_abseil_dir}/absl/status/status.h",
    "${dawn_abseil_dir}/absl/status/status_payload_printer.h",
  ]
  sources = [
    "${dawn_abseil_dir}/absl/status/internal/status_internal.cc",
    "${dawn_abseil_dir}/absl/status/internal/status_internal.h",
    "${dawn_abseil_dir}/absl/status/status.cc",
    "${dawn_abseil_dir}/absl/status/status_payload_printer.cc",
  ]
  deps = [
    ":atomic_hook",
    ":config",
    ":cord",
    ":core_headers",
    ":function_ref",
    ":inlined_vector",
    ":leak_check",
    ":memory",
    ":no_destructor",
    ":nullability",
    ":optional",
    ":raw_logging_internal",
    ":span",
    ":stacktrace",
    ":str_format",
    ":strerror",
    ":string_view",
    ":strings",
    ":symbolize",
  ]
}

absl_source_set("statusor") {
  public = [ "${dawn_abseil_dir}/absl/status/statusor.h" ]
  sources = [
    "${dawn_abseil_dir}/absl/status/internal/statusor_internal.h",
    "${dawn_abseil_dir}/absl/status/statusor.cc",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":has_ostream_operator",
    ":nullability",
    ":raw_logging_internal",
    ":status",
    ":str_format",
    ":string_view",
    ":strings",
    ":type_traits",
    ":utility",
    ":variant",
  ]
}

#
# absl/synchronization
#

absl_source_set("graphcycles_internal") {
  sources =
      [ "${dawn_abseil_dir}/absl/synchronization/internal/graphcycles.cc" ]
  public = [ "${dawn_abseil_dir}/absl/synchronization/internal/graphcycles.h" ]
  deps = [
    ":base",
    ":base_internal",
    ":config",
    ":core_headers",
    ":malloc_internal",
    ":raw_logging_internal",
  ]
  visibility = [ ":*" ]
}

absl_source_set("kernel_timeout_internal") {
  sources =
      [ "${dawn_abseil_dir}/absl/synchronization/internal/kernel_timeout.cc" ]
  public =
      [ "${dawn_abseil_dir}/absl/synchronization/internal/kernel_timeout.h" ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":raw_logging_internal",
    ":time",
  ]
}

absl_source_set("synchronization") {
  sources = [
    "${dawn_abseil_dir}/absl/synchronization/barrier.cc",
    "${dawn_abseil_dir}/absl/synchronization/blocking_counter.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/create_thread_identity.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/futex_waiter.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/per_thread_sem.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/pthread_waiter.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/sem_waiter.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/stdcpp_waiter.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/waiter_base.cc",
    "${dawn_abseil_dir}/absl/synchronization/internal/win32_waiter.cc",
    "${dawn_abseil_dir}/absl/synchronization/mutex.cc",
    "${dawn_abseil_dir}/absl/synchronization/notification.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/synchronization/barrier.h",
    "${dawn_abseil_dir}/absl/synchronization/blocking_counter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/create_thread_identity.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/futex.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/futex_waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/per_thread_sem.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/pthread_waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/sem_waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/stdcpp_waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/waiter_base.h",
    "${dawn_abseil_dir}/absl/synchronization/internal/win32_waiter.h",
    "${dawn_abseil_dir}/absl/synchronization/mutex.h",
    "${dawn_abseil_dir}/absl/synchronization/notification.h",
  ]
  deps = [
    ":atomic_hook",
    ":base",
    ":base_internal",
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":graphcycles_internal",
    ":kernel_timeout_internal",
    ":malloc_internal",
    ":raw_logging_internal",
    ":stacktrace",
    ":symbolize",
    ":time",
    ":tracing_internal",
  ]
}

#
# absl/time
#

absl_source_set("civil_time") {
  sources =
      [ "${dawn_abseil_dir}/absl/time/internal/cctz/src/civil_time_detail.cc" ]
  public = [
    "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/civil_time.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/civil_time_detail.h",
  ]
  deps = [ ":config" ]
}

absl_source_set("time") {
  sources = [
    "${dawn_abseil_dir}/absl/time/civil_time.cc",
    "${dawn_abseil_dir}/absl/time/clock.cc",
    "${dawn_abseil_dir}/absl/time/duration.cc",
    "${dawn_abseil_dir}/absl/time/format.cc",
    "${dawn_abseil_dir}/absl/time/internal/get_current_time_chrono.inc",
    "${dawn_abseil_dir}/absl/time/internal/get_current_time_posix.inc",
    "${dawn_abseil_dir}/absl/time/time.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/time/civil_time.h",
    "${dawn_abseil_dir}/absl/time/clock.h",
    "${dawn_abseil_dir}/absl/time/time.h",
  ]
  deps = [
    ":base",
    ":civil_time",
    ":config",
    ":core_headers",
    ":int128",
    ":optional",
    ":raw_logging_internal",
    ":string_view",
    ":strings",
    ":time_zone",
  ]
}

absl_source_set("time_zone") {
  sources = [
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_fixed.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_fixed.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_format.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_if.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_if.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_impl.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_impl.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_info.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_info.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_libc.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_libc.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_lookup.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_posix.cc",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/time_zone_posix.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/tzfile.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/src/zone_info_source.cc",
  ]
  public = [
    "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/time_zone.h",
    "${dawn_abseil_dir}/absl/time/internal/cctz/include/cctz/zone_info_source.h",
  ]
  defines = []
  if (is_apple) {
    frameworks = [ "Foundation.framework" ]

    # Work-around for https://github.com/llvm/llvm-project/issues/117630
    defines += [ "_XOPEN_SOURCE=700" ]
  }
  deps = [
    ":civil_time",
    ":config",
  ]
  if (is_fuchsia) {
    # Remove when fixed in Fuchsia SDK:
    # https://bugs.fuchsia.dev/p/fuchsia/issues/detail?id=127301
    cflags_cc = [ "-Wno-sign-conversion" ]
    deps += [
      "//third_party/fuchsia-sdk/sdk/fidl/fuchsia.intl:fuchsia.intl_hlcpp",
      "//third_party/fuchsia-sdk/sdk/pkg/async",
      "//third_party/fuchsia-sdk/sdk/pkg/async-loop-cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/sys_cpp",
      "//third_party/fuchsia-sdk/sdk/pkg/zx",
    ]
  }
}

#
# absl/types
#

absl_source_set("bad_optional_access") {
  sources = [ "${dawn_abseil_dir}/absl/types/bad_optional_access.cc" ]
  public = [ "${dawn_abseil_dir}/absl/types/bad_optional_access.h" ]
  public_deps = [ ":config" ]
  deps = [ ":raw_logging_internal" ]
}

absl_source_set("bad_variant_access") {
  sources = [ "${dawn_abseil_dir}/absl/types/bad_variant_access.cc" ]
  public = [ "${dawn_abseil_dir}/absl/types/bad_variant_access.h" ]
  public_deps = [ ":config" ]
  deps = [ ":raw_logging_internal" ]
}

absl_source_set("compare") {
  public = [ "${dawn_abseil_dir}/absl/types/compare.h" ]
  deps = [
    ":config",
    ":core_headers",
    ":type_traits",
  ]
}

absl_source_set("optional") {
  sources = [ "${dawn_abseil_dir}/absl/types/internal/optional.h" ]
  public = [ "${dawn_abseil_dir}/absl/types/optional.h" ]
  public_deps = [
    ":bad_optional_access",
    ":base_internal",
    ":config",
    ":core_headers",
    ":memory",
    ":nullability",
    ":type_traits",
    ":utility",
  ]
}

absl_source_set("span") {
  public = [ "${dawn_abseil_dir}/absl/types/span.h" ]
  sources = [ "${dawn_abseil_dir}/absl/types/internal/span.h" ]
  public_deps = [
    ":algorithm",
    ":core_headers",
    ":nullability",
    ":throw_delegate",
    ":type_traits",
  ]
}

absl_source_set("variant") {
  sources = [ "${dawn_abseil_dir}/absl/types/internal/variant.h" ]
  public = [ "${dawn_abseil_dir}/absl/types/variant.h" ]
  public_deps = [
    ":bad_variant_access",
    ":base_internal",
    ":config",
    ":core_headers",
    ":type_traits",
    ":utility",
  ]
}

#
# absl/utility
#

absl_source_set("utility") {
  public = [ "${dawn_abseil_dir}/absl/utility/utility.h" ]
  deps = [
    ":base_internal",
    ":config",
    ":type_traits",
  ]
}

absl_source_set("if_constexpr") {
  public = [ "${dawn_abseil_dir}/absl/utility/internal/if_constexpr.h" ]
  deps = [ ":config" ]
}
