# Copyright 2018 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

import("//third_party/abseil-cpp/absl.gni")

absl_source_set("compressed_tuple") {
  public = [ "internal/compressed_tuple.h" ]
  deps = [ "//third_party/abseil-cpp/absl/utility" ]
}

absl_source_set("fixed_array") {
  public = [ "fixed_array.h" ]
  deps = [
    ":compressed_tuple",
    "//third_party/abseil-cpp/absl/algorithm",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:dynamic_annotations",
    "//third_party/abseil-cpp/absl/base:throw_delegate",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("inlined_vector_internal") {
  public = [ "internal/inlined_vector.h" ]
  deps = [
    ":compressed_tuple",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/types:span",
  ]
}

absl_source_set("inlined_vector") {
  public = [ "inlined_vector.h" ]
  deps = [
    ":inlined_vector_internal",
    "//third_party/abseil-cpp/absl/algorithm",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:throw_delegate",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("counting_allocator") {
  testonly = true
  public = [ "internal/counting_allocator.h" ]
  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
  visibility = [ ":*" ]
}

absl_source_set("test_instance_tracker") {
  testonly = true
  sources = [ "internal/test_instance_tracker.cc" ]
  public = [ "internal/test_instance_tracker.h" ]
  deps = [ "//third_party/abseil-cpp/absl/types:compare" ]
  visibility = [ "//third_party/abseil-cpp/absl/*" ]
}

absl_source_set("flat_hash_map") {
  public = [ "flat_hash_map.h" ]
  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":raw_hash_map",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("flat_hash_set") {
  public = [ "flat_hash_set.h" ]
  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":raw_hash_set",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("node_hash_map") {
  public = [ "node_hash_map.h" ]
  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":node_slot_policy",
    ":raw_hash_map",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("node_hash_set") {
  public = [ "node_hash_set.h" ]
  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":node_slot_policy",
    ":raw_hash_set",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("container_memory") {
  public = [ "internal/container_memory.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/utility",
  ]
}

absl_source_set("hash_function_defaults") {
  public = [ "internal/hash_function_defaults.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/hash",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:cord",
  ]
}

absl_source_set("hash_generator_testing") {
  testonly = true
  sources = [ "internal/hash_generator_testing.cc" ]
  public = [ "internal/hash_generator_testing.h" ]
  deps = [
    ":hash_policy_testing",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/strings",
  ]
}

absl_source_set("hash_policy_testing") {
  testonly = true
  public = [ "internal/hash_policy_testing.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/hash",
    "//third_party/abseil-cpp/absl/strings",
  ]
}

absl_source_set("hash_policy_traits") {
  public = [ "internal/hash_policy_traits.h" ]
  deps = [ "//third_party/abseil-cpp/absl/meta:type_traits" ]
}

absl_source_set("hashtable_debug") {
  public = [ "internal/hashtable_debug.h" ]
  deps = [ ":hashtable_debug_hooks" ]
}

absl_source_set("hashtable_debug_hooks") {
  public = [ "internal/hashtable_debug_hooks.h" ]
  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
}

absl_source_set("hashtablez_sampler") {
  public = [ "internal/hashtablez_sampler.h" ]
  sources = [
    "internal/hashtablez_sampler.cc",
    "internal/hashtablez_sampler_force_weak_definition.cc",
  ]
  deps = [
    ":have_sse",
    "//third_party/abseil-cpp/absl/base",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/debugging:stacktrace",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/profiling:exponential_biased",
    "//third_party/abseil-cpp/absl/profiling:sample_recorder",
    "//third_party/abseil-cpp/absl/synchronization",
    "//third_party/abseil-cpp/absl/utility",
  ]
}

absl_source_set("node_slot_policy") {
  public = [ "internal/node_slot_policy.h" ]
  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
}

absl_source_set("node_slot_policy_test") {
  testonly = true
  sources = [ "internal/node_slot_policy_test.cc" ]
  deps = [
    ":hash_policy_traits",
    ":node_slot_policy",
    "//third_party/googletest:gmock",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("raw_hash_map") {
  public = [ "internal/raw_hash_map.h" ]
  deps = [
    ":container_memory",
    ":raw_hash_set",
    "//third_party/abseil-cpp/absl/base:throw_delegate",
  ]
}

absl_source_set("have_sse") {
  public = [ "internal/have_sse.h" ]
  visibility = [ ":*" ]
}

absl_source_set("common") {
  public = [ "internal/common.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/types:optional",
  ]
}

absl_source_set("raw_hash_set") {
  sources = [ "internal/raw_hash_set.cc" ]
  public = [ "internal/raw_hash_set.h" ]
  deps = [
    ":common",
    ":compressed_tuple",
    ":container_memory",
    ":hash_policy_traits",
    ":hashtable_debug_hooks",
    ":hashtablez_sampler",
    ":have_sse",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:endian",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/numeric:bits",
    "//third_party/abseil-cpp/absl/utility",
  ]
}

absl_source_set("layout") {
  public = [ "internal/layout.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/types:span",
    "//third_party/abseil-cpp/absl/utility",
  ]
}

absl_source_set("tracked") {
  testonly = true
  public = [ "internal/tracked.h" ]
  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
}

absl_source_set("unordered_map_constructor_test") {
  testonly = true
  public = [ "internal/unordered_map_constructor_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_map_lookup_test") {
  testonly = true
  public = [ "internal/unordered_map_lookup_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_map_modifiers_test") {
  testonly = true
  public = [ "internal/unordered_map_modifiers_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_set_constructor_test") {
  testonly = true
  public = [ "internal/unordered_set_constructor_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_set_members_test") {
  testonly = true
  public = [ "internal/unordered_set_members_test.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_map_members_test") {
  testonly = true
  public = [ "internal/unordered_map_members_test.h" ]
  deps = [
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_set_lookup_test") {
  testonly = true
  public = [ "internal/unordered_set_lookup_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("unordered_set_modifiers_test") {
  testonly = true
  public = [ "internal/unordered_set_modifiers_test.h" ]
  deps = [
    ":hash_generator_testing",
    ":hash_policy_testing",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("sample_element_size_test") {
  testonly = true
  public = [ "sample_element_size_test.cc" ]
  deps = [
    ":flat_hash_map",
    ":flat_hash_set",
    ":node_hash_map",
    ":node_hash_set",
    "//third_party/googletest:gtest",
  ]
}

absl_source_set("btree") {
  sources = [
    "internal/btree.h",
    "internal/btree_container.h",
  ]
  public = [
    "btree_map.h",
    "btree_set.h",
  ]
  deps = [
    ":common",
    ":compressed_tuple",
    ":container_memory",
    ":layout",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//third_party/abseil-cpp/absl/base:throw_delegate",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/meta:type_traits",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/abseil-cpp/absl/strings:cord",
    "//third_party/abseil-cpp/absl/types:compare",
    "//third_party/abseil-cpp/absl/utility",
  ]
}

absl_source_set("inlined_vector_test") {
  testonly = true
  sources = [ "inlined_vector_test.cc" ]
  if (is_win && !is_clang) {
    cflags_cc = [ "/wd4996" ]
  } else {
    cflags_cc = [ "-Wno-deprecated-declarations" ]
  }
  deps = [
    ":counting_allocator",
    ":inlined_vector",
    ":test_instance_tracker",
    "//third_party/abseil-cpp/absl/base:config",
    "//third_party/abseil-cpp/absl/base:core_headers",
    "//third_party/abseil-cpp/absl/base:exception_testing",
    "//third_party/abseil-cpp/absl/base:raw_logging_internal",
    "//third_party/abseil-cpp/absl/hash:hash_testing",
    "//third_party/abseil-cpp/absl/memory",
    "//third_party/abseil-cpp/absl/strings",
    "//third_party/googletest:gmock",
    "//third_party/googletest:gtest",
  ]
}
