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