# 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("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("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" ]
  public = [ "${dawn_abseil_dir}/absl/debugging/internal/demangle.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("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",
  ]
}
