1# Copyright 2018 The Chromium Authors 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:dynamic_annotations", 28 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 29 ] 30} 31 32absl_test("stacktrace_test") { 33 sources = [ "stacktrace_test.cc" ] 34 deps = [ 35 ":stacktrace", 36 "//third_party/abseil-cpp/absl/base:core_headers", 37 ] 38} 39 40absl_source_set("symbolize") { 41 sources = [ 42 "symbolize.cc", 43 "symbolize_darwin.inc", 44 "symbolize_elf.inc", 45 "symbolize_emscripten.inc", 46 "symbolize_unimplemented.inc", 47 "symbolize_win32.inc", 48 ] 49 public = [ 50 "internal/symbolize.h", 51 "symbolize.h", 52 ] 53 deps = [ 54 ":debugging_internal", 55 ":demangle_internal", 56 "//third_party/abseil-cpp/absl/base", 57 "//third_party/abseil-cpp/absl/base:config", 58 "//third_party/abseil-cpp/absl/base:core_headers", 59 "//third_party/abseil-cpp/absl/base:dynamic_annotations", 60 "//third_party/abseil-cpp/absl/base:malloc_internal", 61 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 62 "//third_party/abseil-cpp/absl/strings", 63 "//third_party/abseil-cpp/absl/strings:string_view", 64 ] 65 66 # TODO(mbonadei): The bazel file has: 67 # -DEFAULTLIB:dbghelp.lib 68 # evaluate if this needs to be added here as well. 69} 70 71absl_source_set("examine_stack") { 72 sources = [ "internal/examine_stack.cc" ] 73 public = [ "internal/examine_stack.h" ] 74 visibility = [ 75 ":*", 76 "//third_party/abseil-cpp/absl/log/internal:*", 77 ] 78 deps = [ 79 ":stacktrace", 80 ":symbolize", 81 "//third_party/abseil-cpp/absl/base:config", 82 "//third_party/abseil-cpp/absl/base:core_headers", 83 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 84 ] 85} 86 87absl_source_set("failure_signal_handler") { 88 sources = [ "failure_signal_handler.cc" ] 89 public = [ "failure_signal_handler.h" ] 90 deps = [ 91 ":examine_stack", 92 ":stacktrace", 93 "//third_party/abseil-cpp/absl/base", 94 "//third_party/abseil-cpp/absl/base:config", 95 "//third_party/abseil-cpp/absl/base:core_headers", 96 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 97 ] 98} 99 100absl_source_set("debugging_internal") { 101 sources = [ 102 "internal/address_is_readable.cc", 103 "internal/elf_mem_image.cc", 104 "internal/vdso_support.cc", 105 ] 106 public = [ 107 "internal/address_is_readable.h", 108 "internal/addresses.h", 109 "internal/elf_mem_image.h", 110 "internal/vdso_support.h", 111 ] 112 visibility = [ ":*" ] 113 deps = [ 114 "//third_party/abseil-cpp/absl/base:config", 115 "//third_party/abseil-cpp/absl/base:core_headers", 116 "//third_party/abseil-cpp/absl/base:dynamic_annotations", 117 "//third_party/abseil-cpp/absl/base:errno_saver", 118 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 119 ] 120} 121 122absl_source_set("demangle_internal") { 123 sources = [ "internal/demangle.cc" ] 124 public = [ "internal/demangle.h" ] 125 visibility = [ 126 "//third_party/abseil-cpp/absl/container:*", 127 "//third_party/abseil-cpp/absl/debugging:*", 128 ] 129 deps = [ 130 ":demangle_rust", 131 "//third_party/abseil-cpp/absl/base", 132 "//third_party/abseil-cpp/absl/base:config", 133 "//third_party/abseil-cpp/absl/base:core_headers", 134 "//third_party/abseil-cpp/absl/base:nullability", 135 "//third_party/abseil-cpp/absl/numeric:bits", 136 ] 137} 138 139# Disabled because this test relies on RTTI 140# absl_test("demangle_test") { 141# sources = [ "internal/demangle_test.cc" ] 142# deps = [ 143# ":demangle_internal", 144# ":stack_consumption", 145# "//third_party/abseil-cpp/absl/base:config", 146# "//third_party/abseil-cpp/absl/base:core_headers", 147# "//third_party/abseil-cpp/absl/log", 148# "//third_party/abseil-cpp/absl/memory", 149# ] 150# } 151 152absl_source_set("bounded_utf8_length_sequence") { 153 public = [ "internal/bounded_utf8_length_sequence.h" ] 154 deps = [ 155 "//third_party/abseil-cpp/absl/base:config", 156 "//third_party/abseil-cpp/absl/numeric:bits", 157 ] 158} 159 160absl_test("bounded_utf8_length_sequence_test") { 161 sources = [ "internal/bounded_utf8_length_sequence_test.cc" ] 162 deps = [ 163 ":bounded_utf8_length_sequence", 164 "//third_party/abseil-cpp/absl/base:config", 165 ] 166} 167 168absl_source_set("decode_rust_punycode") { 169 sources = [ "internal/decode_rust_punycode.cc" ] 170 public = [ "internal/decode_rust_punycode.h" ] 171 deps = [ 172 ":bounded_utf8_length_sequence", 173 ":utf8_for_code_point", 174 "//third_party/abseil-cpp/absl/base:config", 175 "//third_party/abseil-cpp/absl/base:nullability", 176 ] 177} 178 179absl_test("decode_rust_punycode_test") { 180 sources = [ "internal/decode_rust_punycode_test.cc" ] 181 deps = [ 182 ":decode_rust_punycode", 183 "//third_party/abseil-cpp/absl/base:config", 184 ] 185} 186 187absl_source_set("demangle_rust") { 188 sources = [ "internal/demangle_rust.cc" ] 189 public = [ "internal/demangle_rust.h" ] 190 deps = [ 191 ":decode_rust_punycode", 192 "//third_party/abseil-cpp/absl/base:config", 193 "//third_party/abseil-cpp/absl/base:core_headers", 194 ] 195} 196 197absl_test("demangle_rust_test") { 198 sources = [ "internal/demangle_rust_test.cc" ] 199 deps = [ 200 ":demangle_rust", 201 "//third_party/abseil-cpp/absl/base:config", 202 "//third_party/abseil-cpp/absl/base:core_headers", 203 ] 204} 205 206absl_source_set("utf8_for_code_point") { 207 sources = [ "internal/utf8_for_code_point.cc" ] 208 public = [ "internal/utf8_for_code_point.h" ] 209 deps = [ "//third_party/abseil-cpp/absl/base:config" ] 210} 211 212absl_test("utf8_for_code_point_test") { 213 sources = [ "internal/utf8_for_code_point_test.cc" ] 214 deps = [ 215 ":utf8_for_code_point", 216 "//third_party/abseil-cpp/absl/base:config", 217 ] 218} 219 220absl_source_set("leak_check") { 221 sources = [ "leak_check.cc" ] 222 public = [ "leak_check.h" ] 223 deps = [ 224 "//third_party/abseil-cpp/absl/base:config", 225 "//third_party/abseil-cpp/absl/base:core_headers", 226 ] 227} 228 229absl_source_set("stack_consumption") { 230 testonly = true 231 sources = [ "internal/stack_consumption.cc" ] 232 public = [ "internal/stack_consumption.h" ] 233 deps = [ 234 "//third_party/abseil-cpp/absl/base:config", 235 "//third_party/abseil-cpp/absl/base:core_headers", 236 "//third_party/abseil-cpp/absl/base:raw_logging_internal", 237 ] 238 visibility = [ ":*" ] 239} 240