# 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/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_hash_policy",
    ":raw_hash_map",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//third_party/abseil-cpp/absl/memory",
  ]
}

absl_source_set("node_hash_set") {
  public = [ "node_hash_set.h" ]
  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":node_hash_policy",
    ":raw_hash_set",
    "//third_party/abseil-cpp/absl/algorithm:container",
    "//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_hash_policy") {
  public = [ "internal/node_hash_policy.h" ]
  deps = [ "//third_party/abseil-cpp/absl/base:config" ]
}

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