# 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 (dawn_standalone && 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/string_view.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/string_view.h",
    "${dawn_abseil_dir}/absl/strings/strip.h",
    "${dawn_abseil_dir}/absl/strings/substitute.h",
  ]
  deps = [
    ":base",
    ":bits",
    ":endian",
    ":int128",
    ":raw_logging_internal",
    ":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",
  ]
}
