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

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

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

  sources = [ "stacktrace.cc" ]
  public = [ "stacktrace.h" ]
  deps = [
    ":debugging_internal",
    "../base",
    "../base:core_headers",
  ]
}
source_set("symbolize") {
  public_configs = [ "//third_party/abseil-cpp:abseil_config" ]

  sources = [
    "symbolize.cc",
    "symbolize_elf.inc",
    "symbolize_unimplemented.inc",
    "symbolize_win32.inc",
  ]
  public = [
    "internal/symbolize.h",
    "symbolize.h",
  ]
  deps = [
    ":debugging_internal",
    ":demangle_internal",
    "../base",
    "../base:core_headers",
    "../base:malloc_internal",
  ]
}

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

  sources = [ "internal/demangle.cc" ]
  public = [ "internal/demangle.h" ]
  deps = [
    "../base",
    "../base:core_headers",
  ]
}

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

  sources = [
    "internal/address_is_readable.cc",
    "internal/elf_mem_image.cc",
    "internal/vdso_support.cc",
  ]
  public = [
    "internal/address_is_readable.h",
    "internal/elf_mem_image.h",
    "internal/stacktrace_config.h",
    "internal/vdso_support.h",
  ]
  deps = [
    "../base",
    "../base:dynamic_annotations",
  ]
}
