# Copyright 2018 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.

# Please do not add more entries to this list. We plan to remove
# abseil-cpp from the Fuchsia platform source tree once cobalt
# moves out-of-tree.
visibility = [
  "//third_party/abseil-cpp/*",
  "$cobalt_root/*",
  "//third_party/tink/*",
]

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

  public = [
    "attributes.h",
    "macros.h",
    "optimization.h",
    "port.h",
    "thread_annotations.h",
  ]
  deps = [
    ":config",
    ":dynamic_annotations",
  ]
}

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

  public = [
    "internal/hide_ptr.h",
    "internal/identity.h",
    "internal/inline_variable.h",
    "internal/invoke.h",
  ]
  visibility = []
  visibility += [ "../*" ]
}

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

  sources = [
    "internal/cycleclock.cc",
    "internal/raw_logging.cc",
    "internal/spinlock.cc",
    "internal/sysinfo.cc",
    "internal/thread_identity.cc",
    "internal/unscaledcycleclock.cc",
    "log_severity.cc",
  ]
  public = [
    "call_once.h",
    "casts.h",
    "internal/atomic_hook.h",
    "internal/cycleclock.h",
    "internal/low_level_scheduling.h",
    "internal/per_thread_tls.h",
    "internal/raw_logging.h",
    "internal/spinlock.h",
    "internal/sysinfo.h",
    "internal/thread_identity.h",
    "internal/tsan_mutex_interface.h",
    "internal/unscaledcycleclock.h",
    "log_severity.h",
  ]
  deps = [
    ":base_internal",
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":spinlock_wait",
  ]
}

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

  public = [
    "config.h",
    "policy_checks.h",
  ]
}

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

  sources = [
    "internal/low_level_alloc.cc",
  ]
  public = [
    "internal/direct_mmap.h",
    "internal/low_level_alloc.h",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
    ":dynamic_annotations",
    ":spinlock_wait",
  ]
  visibility = []
  visibility += [ "../*" ]
}

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

  sources = [
    "dynamic_annotations.cc",
  ]
  public = [
    "dynamic_annotations.h",
  ]
}

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

  sources = [
    "internal/spinlock_akaros.inc",
    "internal/spinlock_posix.inc",
    "internal/spinlock_wait.cc",
    "internal/spinlock_win32.inc",
  ]
  public = [
    "internal/scheduling_mode.h",
    "internal/spinlock_wait.h",
  ]
  deps = [
    ":core_headers",
  ]
  visibility = []
  visibility += [ "../base:*" ]
}

source_set("endian") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
  sources = [
    "internal/endian.h",
    "internal/unaligned_access.h",
  ]
  deps = [
    ":config",
    ":core_headers",
  ]
}

source_set("throw_delegate") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
  sources = [
    "internal/throw_delegate.cc",
    "internal/throw_delegate.h",
  ]
  deps = [
    ":base",
    ":config",
    ":core_headers",
  ]
}

source_set("bits") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]
  public = [
    "internal/bits.h",
  ]
  public_deps = [
    ":core_headers",
  ]
}
