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

visibility = [
  "$cobalt_root/*",
  "//third_party/abseil-cpp/*",
  "//third_party/tink/*",
]

source_set("compressed_tuple") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/compressed_tuple.h" ]

  deps = [ "../utility" ]
}

source_set("fixed_array") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "fixed_array.h" ]

  deps = [
    ":compressed_tuple",
    "../algorithm",
    "../base:config",
    "../base:core_headers",
    "../base:dynamic_annotations",
    "../base:throw_delegate",
    "../memory",
  ]
}

source_set("inlined_vector_internal") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/inlined_vector.h" ]

  deps = [
    ":compressed_tuple",
    "../base:core_headers",
    "../memory",
    "../meta:type_traits",
    "../types:span",
  ]
}

source_set("inlined_vector") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "inlined_vector.h" ]

  deps = [
    ":inlined_vector_internal",
    "../algorithm",
    "../base:core_headers",
    "../base:throw_delegate",
    "../memory",
  ]
}

source_set("flat_hash_map") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "flat_hash_map.h" ]

  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":raw_hash_map",
    "../algorithm:container",
    "../memory",
  ]
}
source_set("flat_hash_set") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "flat_hash_set.h" ]

  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":raw_hash_set",
    "../algorithm:container",
    "../base:core_headers",
    "../memory",
  ]
}

source_set("node_hash_map") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "node_hash_map.h" ]

  deps = [
    ":container_memory",
    ":hash_function_defaults",
    ":node_hash_policy",
    ":raw_hash_map",
    "../algorithm:container",
    "../memory",
  ]
}
source_set("node_hash_set") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "node_hash_set.h" ]

  deps = [
    ":hash_function_defaults",
    ":node_hash_policy",
    ":raw_hash_set",
    "../algorithm:container",
    "../memory",
  ]
}
source_set("container_memory") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/container_memory.h" ]

  deps = [
    "../base:config",
    "../memory",
    "../meta:type_traits",
    "../utility",
  ]
}
source_set("hash_function_defaults") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/hash_function_defaults.h" ]

  deps = [
    "../base:config",
    "../hash",
    "../strings",
    "../strings:cord",
  ]
}

source_set("hash_policy_traits") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/hash_policy_traits.h" ]

  deps = [ "../meta:type_traits" ]
}

source_set("hashtable_debug") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/hashtable_debug.h" ]

  deps = [ ":hashtable_debug_hooks" ]
}

source_set("hashtable_debug_hooks") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/hashtable_debug_hooks.h" ]

  deps = [ "../base:config" ]
}

source_set("hashtablez_sampler") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  sources = [
    "internal/hashtablez_sampler.cc",
    "internal/hashtablez_sampler_force_weak_definition.cc",
  ]
  public = [ "internal/hashtablez_sampler.h" ]

  deps = [
    ":have_sse",
    "../base",
    "../base:core_headers",
    "../base:exponential_biased",
    "../debugging:stacktrace",
    "../memory",
    "../synchronization",
    "../utility",
  ]
}

source_set("node_hash_policy") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/node_hash_policy.h" ]

  deps = [ "../base:config" ]
}

source_set("raw_hash_map") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/raw_hash_map.h" ]

  deps = [
    ":container_memory",
    ":raw_hash_set",
    "../base:throw_delegate",
  ]
}

source_set("have_sse") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/have_sse.h" ]
}

source_set("common") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/common.h" ]

  deps = [
    "../meta:type_traits",
    "../types:optional",
  ]
}

source_set("raw_hash_set") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  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",
    ":layout",
    "../base:config",
    "../base:core_headers",
    "../base:endian",
    "../memory",
    "../meta:type_traits",
    "../numeric:bits",
    "../utility",
  ]
}

source_set("layout") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  public = [ "internal/layout.h" ]

  deps = [
    "../base:config",
    "../base:core_headers",
    "../meta:type_traits",
    "../strings",
    "../types:span",
    "../utility",
  ]
}

source_set("btree") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  sources = [
    "internal/btree.h",
    "internal/btree_container.h",
  ]
  public = [
    "btree_map.h",
    "btree_set.h",
  ]

  deps = [
    ":common",
    ":compressed_tuple",
    ":container_memory",
    ":layout",
    "../base:core_headers",
    "../base:throw_delegate",
    "../memory",
    "../meta:type_traits",
    "../strings",
    "../strings:cord",
    "../types:compare",
    "../utility",
  ]
}
