# 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.

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",
    ]
  }

  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/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" ]
  deps = [
    ":algorithm",
    ":core_headers",
    ":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",
    ":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("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/internal/prefetch.h",
    "${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("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/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 = [
    ":config",
    ":hash",
    ":string_view",
  ]
}

absl_source_set("hash_policy_traits") {
  public = [ "${dawn_abseil_dir}/absl/container/internal/hash_policy_traits.h" ]
  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",
    ":raw_logging_internal",
    ":sample_recorder",
    ":stacktrace",
    ":synchronization",
    ":time",
    ":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 = [
    ":compressed_tuple",
    ":config",
    ":core_headers",
    ":memory",
    ":span",
    ":type_traits",
  ]
}

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",
    ":hash",
    ":hash_policy_traits",
    ":hashtable_debug_hooks",
    ":hashtablez_sampler",
    ":memory",
    ":prefetch",
    ":raw_logging_internal",
    ":type_traits",
    ":utility",
  ]
}

#
# 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("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",
  ]
}

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/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/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/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",
    ":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/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",
  ]
  deps = [
    ":base",
    ":bits",
    ":endian",
    ":int128",
    ":raw_logging_internal",
    ":string_view",
    ":strings_internal",
    ":throw_delegate",
    ":type_traits",
  ]
}

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/char_map.h",
    "${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 = [ ":str_format_internal" ]
}

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",
    ":function_ref",
    ":int128",
    ":strings",
    ":type_traits",
    ":utility",
  ]
}

#
# 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("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_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",
  ]
}

#
# 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",
  ]
  if (is_apple) {
    frameworks = [ "Foundation.framework" ]
  }
  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("optional") {
  sources = [ "${dawn_abseil_dir}/absl/types/internal/optional.h" ]
  public = [ "${dawn_abseil_dir}/absl/types/internal/optional.h" ]
  public_deps = [
    ":bad_optional_access",
    ":base_internal",
    ":config",
    ":core_headers",
    ":memory",
    ":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",
  ]
}
