• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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