• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15#
16
17find_library(EXECINFO_LIBRARY execinfo)
18
19absl_cc_library(
20  NAME
21    stacktrace
22  HDRS
23    "stacktrace.h"
24    "internal/stacktrace_aarch64-inl.inc"
25    "internal/stacktrace_arm-inl.inc"
26    "internal/stacktrace_config.h"
27    "internal/stacktrace_emscripten-inl.inc"
28    "internal/stacktrace_generic-inl.inc"
29    "internal/stacktrace_powerpc-inl.inc"
30    "internal/stacktrace_riscv-inl.inc"
31    "internal/stacktrace_unimplemented-inl.inc"
32    "internal/stacktrace_win32-inl.inc"
33    "internal/stacktrace_x86-inl.inc"
34  SRCS
35    "stacktrace.cc"
36  COPTS
37    ${ABSL_DEFAULT_COPTS}
38  LINKOPTS
39    $<$<BOOL:${EXECINFO_LIBRARY}>:${EXECINFO_LIBRARY}>
40  DEPS
41    absl::debugging_internal
42    absl::config
43    absl::core_headers
44    absl::raw_logging_internal
45  PUBLIC
46)
47
48absl_cc_library(
49  NAME
50    symbolize
51  HDRS
52    "symbolize.h"
53    "internal/symbolize.h"
54  SRCS
55    "symbolize.cc"
56    "symbolize_darwin.inc"
57    "symbolize_elf.inc"
58    "symbolize_emscripten.inc"
59    "symbolize_unimplemented.inc"
60    "symbolize_win32.inc"
61  COPTS
62    ${ABSL_DEFAULT_COPTS}
63  LINKOPTS
64    ${ABSL_DEFAULT_LINKOPTS}
65    $<$<BOOL:${MINGW}>:-ldbghelp>
66  DEPS
67    absl::debugging_internal
68    absl::demangle_internal
69    absl::base
70    absl::config
71    absl::core_headers
72    absl::dynamic_annotations
73    absl::malloc_internal
74    absl::raw_logging_internal
75    absl::strings
76  PUBLIC
77)
78
79absl_cc_test(
80  NAME
81    symbolize_test
82  SRCS
83    "symbolize_test.cc"
84  COPTS
85    ${ABSL_TEST_COPTS}
86    $<$<BOOL:${MSVC}>:-Z7>
87  LINKOPTS
88    $<$<BOOL:${MSVC}>:-DEBUG>
89  DEPS
90    absl::stack_consumption
91    absl::symbolize
92    absl::base
93    absl::config
94    absl::core_headers
95    absl::memory
96    absl::raw_logging_internal
97    absl::strings
98    GTest::gmock
99)
100
101# Internal-only target, do not depend on directly.
102absl_cc_library(
103  NAME
104    examine_stack
105  HDRS
106    "internal/examine_stack.h"
107  SRCS
108    "internal/examine_stack.cc"
109  COPTS
110    ${ABSL_DEFAULT_COPTS}
111  DEPS
112    absl::stacktrace
113    absl::symbolize
114    absl::config
115    absl::core_headers
116    absl::raw_logging_internal
117)
118
119absl_cc_library(
120  NAME
121    failure_signal_handler
122  HDRS
123    "failure_signal_handler.h"
124  SRCS
125    "failure_signal_handler.cc"
126  COPTS
127    ${ABSL_DEFAULT_COPTS}
128  DEPS
129    absl::examine_stack
130    absl::stacktrace
131    absl::base
132    absl::config
133    absl::core_headers
134    absl::raw_logging_internal
135  PUBLIC
136)
137
138absl_cc_test(
139  NAME
140    failure_signal_handler_test
141  SRCS
142    "failure_signal_handler_test.cc"
143  COPTS
144    ${ABSL_TEST_COPTS}
145  DEPS
146    absl::failure_signal_handler
147    absl::stacktrace
148    absl::symbolize
149    absl::strings
150    absl::raw_logging_internal
151    Threads::Threads
152    GTest::gmock
153)
154
155# Internal-only target, do not depend on directly.
156absl_cc_library(
157  NAME
158    debugging_internal
159  HDRS
160    "internal/address_is_readable.h"
161    "internal/elf_mem_image.h"
162    "internal/vdso_support.h"
163  SRCS
164    "internal/address_is_readable.cc"
165    "internal/elf_mem_image.cc"
166    "internal/vdso_support.cc"
167  COPTS
168    ${ABSL_DEFAULT_COPTS}
169  DEPS
170    absl::core_headers
171    absl::config
172    absl::dynamic_annotations
173    absl::errno_saver
174    absl::raw_logging_internal
175)
176
177# Internal-only target, do not depend on directly.
178absl_cc_library(
179  NAME
180    demangle_internal
181  HDRS
182    "internal/demangle.h"
183  SRCS
184    "internal/demangle.cc"
185  COPTS
186    ${ABSL_DEFAULT_COPTS}
187  DEPS
188    absl::base
189    absl::core_headers
190  PUBLIC
191)
192
193absl_cc_test(
194  NAME
195    demangle_test
196  SRCS
197    "internal/demangle_test.cc"
198  COPTS
199    ${ABSL_TEST_COPTS}
200  DEPS
201    absl::demangle_internal
202    absl::stack_consumption
203    absl::config
204    absl::core_headers
205    absl::memory
206    absl::raw_logging_internal
207    GTest::gmock_main
208)
209
210absl_cc_library(
211  NAME
212    leak_check
213  HDRS
214    "leak_check.h"
215  SRCS
216    "leak_check.cc"
217  COPTS
218    ${ABSL_DEFAULT_COPTS}
219  DEPS
220    absl::config
221    absl::core_headers
222  PUBLIC
223)
224
225absl_cc_test(
226  NAME
227    leak_check_test
228  SRCS
229    "leak_check_test.cc"
230  COPTS
231    ${ABSL_TEST_COPTS}
232  LINKOPTS
233    ${ABSL_DEFAULT_LINKOPTS}
234  DEPS
235    absl::leak_check
236    absl::base
237    GTest::gmock_main
238)
239
240# Internal-only target, do not depend on directly.
241absl_cc_library(
242  NAME
243    stack_consumption
244  HDRS
245    "internal/stack_consumption.h"
246  SRCS
247    "internal/stack_consumption.cc"
248  COPTS
249    ${ABSL_DEFAULT_COPTS}
250  DEPS
251    absl::config
252    absl::core_headers
253    absl::raw_logging_internal
254  TESTONLY
255)
256
257absl_cc_test(
258  NAME
259    stack_consumption_test
260  SRCS
261    "internal/stack_consumption_test.cc"
262  COPTS
263    ${ABSL_TEST_COPTS}
264  DEPS
265    absl::stack_consumption
266    absl::core_headers
267    absl::raw_logging_internal
268    GTest::gmock_main
269)
270
271# component target
272absl_cc_library(
273  NAME
274    debugging
275  COPTS
276    ${ABSL_DEFAULT_COPTS}
277  DEPS
278    absl::stacktrace
279    absl::leak_check
280  PUBLIC
281)
282