1# Copyright 2018 The Chromium Authors. All rights reserved. 2# Use of this source code is governed by a BSD-style license that can be 3# found in the LICENSE file. 4 5import("//build/config/sanitizers/sanitizers.gni") 6import("//third_party/abseil-cpp/absl.gni") 7 8absl_source_set("stacktrace") { 9 sources = [ 10 "internal/stacktrace_aarch64-inl.inc", 11 "internal/stacktrace_arm-inl.inc", 12 "internal/stacktrace_config.h", 13 "internal/stacktrace_emscripten-inl.inc", 14 "internal/stacktrace_generic-inl.inc", 15 "internal/stacktrace_powerpc-inl.inc", 16 "internal/stacktrace_riscv-inl.inc", 17 "internal/stacktrace_unimplemented-inl.inc", 18 "internal/stacktrace_win32-inl.inc", 19 "internal/stacktrace_x86-inl.inc", 20 "stacktrace.cc", 21 ] 22 public = [ "stacktrace.h" ] 23 deps = [ 24 ":debugging_internal", 25 "//third_party/abseil-cpp/absl/base:config", 26 "//third_party/abseil-cpp/absl/base:core_headers", 27 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 28 ] 29} 30 31absl_source_set("symbolize") { 32 sources = [ 33 "symbolize.cc", 34 "symbolize_darwin.inc", 35 "symbolize_elf.inc", 36 "symbolize_emscripten.inc", 37 "symbolize_unimplemented.inc", 38 "symbolize_win32.inc", 39 ] 40 public = [ 41 "internal/symbolize.h", 42 "symbolize.h", 43 ] 44 deps = [ 45 ":debugging_internal", 46 ":demangle_internal", 47 "//third_party/abseil-cpp/absl/base", 48 "//third_party/abseil-cpp/absl/base:config", 49 "//third_party/abseil-cpp/absl/base:core_headers", 50 "//third_party/abseil-cpp/absl/base:dynamic_annotations", 51 "//third_party/abseil-cpp/absl/base:malloc_internal", 52 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 53 "//third_party/abseil-cpp/absl/strings", 54 ] 55 56 # TODO(mbonadei): The bazel file has: 57 # -DEFAULTLIB:dbghelp.lib 58 # evaluate if this needs to be added here as well. 59} 60 61absl_source_set("examine_stack") { 62 sources = [ "internal/examine_stack.cc" ] 63 public = [ "internal/examine_stack.h" ] 64 visibility = [ ":*" ] 65 deps = [ 66 ":stacktrace", 67 ":symbolize", 68 "//third_party/abseil-cpp/absl/base:config", 69 "//third_party/abseil-cpp/absl/base:core_headers", 70 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 71 ] 72} 73 74absl_source_set("failure_signal_handler") { 75 sources = [ "failure_signal_handler.cc" ] 76 public = [ "failure_signal_handler.h" ] 77 deps = [ 78 ":examine_stack", 79 ":stacktrace", 80 "//third_party/abseil-cpp/absl/base", 81 "//third_party/abseil-cpp/absl/base:config", 82 "//third_party/abseil-cpp/absl/base:core_headers", 83 "//third_party/abseil-cpp/absl/base:errno_saver", 84 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 85 ] 86} 87 88absl_source_set("debugging_internal") { 89 sources = [ 90 "internal/address_is_readable.cc", 91 "internal/elf_mem_image.cc", 92 "internal/vdso_support.cc", 93 ] 94 public = [ 95 "internal/address_is_readable.h", 96 "internal/elf_mem_image.h", 97 "internal/vdso_support.h", 98 ] 99 visibility = [ ":*" ] 100 deps = [ 101 "//third_party/abseil-cpp/absl/base:config", 102 "//third_party/abseil-cpp/absl/base:core_headers", 103 "//third_party/abseil-cpp/absl/base:dynamic_annotations", 104 "//third_party/abseil-cpp/absl/base:errno_saver", 105 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 106 ] 107} 108 109absl_source_set("demangle_internal") { 110 sources = [ "internal/demangle.cc" ] 111 public = [ "internal/demangle.h" ] 112 visibility = [ ":*" ] 113 deps = [ 114 "//third_party/abseil-cpp/absl/base", 115 "//third_party/abseil-cpp/absl/base:config", 116 "//third_party/abseil-cpp/absl/base:core_headers", 117 ] 118} 119 120absl_source_set("leak_check") { 121 if (is_ios || is_win) { 122 sources = [] 123 public = [] 124 } else { 125 sources = [ "leak_check.cc" ] 126 public = [ "leak_check.h" ] 127 } 128 deps = [ 129 "//third_party/abseil-cpp/absl/base:config", 130 "//third_party/abseil-cpp/absl/base:core_headers", 131 ] 132} 133 134absl_source_set("leak_check_disable") { 135 sources = [ "leak_check_disable.cc" ] 136 deps = [ "//third_party/abseil-cpp/absl/base:config" ] 137} 138 139if (is_lsan) { 140 absl_source_set("leak_check_api_enabled_for_testing") { 141 testonly = true 142 sources = [ "leak_check.cc" ] 143 public = [ "leak_check.h" ] 144 visibility = [ ":*" ] 145 deps = [ 146 "//third_party/abseil-cpp/absl/base:config", 147 "//third_party/abseil-cpp/absl/base:core_headers", 148 ] 149 } 150} else { 151 absl_source_set("leak_check_api_disabled_for_testing") { 152 testonly = true 153 sources = [ "leak_check.cc" ] 154 public = [ "leak_check.h" ] 155 visibility = [ ":*" ] 156 deps = [ 157 "//third_party/abseil-cpp/absl/base:config", 158 "//third_party/abseil-cpp/absl/base:core_headers", 159 ] 160 } 161} 162 163absl_source_set("stack_consumption") { 164 testonly = true 165 sources = [ "internal/stack_consumption.cc" ] 166 public = [ "internal/stack_consumption.h" ] 167 deps = [ 168 "//third_party/abseil-cpp/absl/base:config", 169 "//third_party/abseil-cpp/absl/base:core_headers", 170 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 171 ] 172 visibility = [ ":*" ] 173} 174