xref: /aosp_15_r20/external/abseil-cpp/absl/debugging/CMakeLists.txt (revision 9356374a3709195abf420251b3e825997ff56c0f)
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::dynamic_annotations
45    absl::raw_logging_internal
46  PUBLIC
47)
48
49absl_cc_test(
50  NAME
51    stacktrace_test
52  SRCS
53    "stacktrace_test.cc"
54  COPTS
55    ${ABSL_TEST_COPTS}
56  DEPS
57    absl::stacktrace
58    absl::core_headers
59    GTest::gmock_main
60)
61
62absl_cc_library(
63  NAME
64    symbolize
65  HDRS
66    "symbolize.h"
67    "internal/symbolize.h"
68  SRCS
69    "symbolize.cc"
70    "symbolize_darwin.inc"
71    "symbolize_elf.inc"
72    "symbolize_emscripten.inc"
73    "symbolize_unimplemented.inc"
74    "symbolize_win32.inc"
75  COPTS
76    ${ABSL_DEFAULT_COPTS}
77  LINKOPTS
78    ${ABSL_DEFAULT_LINKOPTS}
79    $<$<BOOL:${MINGW}>:-ldbghelp>
80  DEPS
81    absl::debugging_internal
82    absl::demangle_internal
83    absl::base
84    absl::config
85    absl::core_headers
86    absl::dynamic_annotations
87    absl::malloc_internal
88    absl::raw_logging_internal
89    absl::strings
90  PUBLIC
91)
92
93absl_cc_test(
94  NAME
95    symbolize_test
96  SRCS
97    "symbolize_test.cc"
98  COPTS
99    ${ABSL_TEST_COPTS}
100    $<$<BOOL:${MSVC}>:-Z7>
101  LINKOPTS
102    $<$<BOOL:${MSVC}>:-DEBUG>
103  DEPS
104    absl::base
105    absl::check
106    absl::config
107    absl::core_headers
108    absl::log
109    absl::memory
110    absl::stack_consumption
111    absl::strings
112    absl::symbolize
113    GTest::gmock
114)
115
116# Internal-only target, do not depend on directly.
117absl_cc_library(
118  NAME
119    examine_stack
120  HDRS
121    "internal/examine_stack.h"
122  SRCS
123    "internal/examine_stack.cc"
124  COPTS
125    ${ABSL_DEFAULT_COPTS}
126  DEPS
127    absl::stacktrace
128    absl::symbolize
129    absl::config
130    absl::core_headers
131    absl::raw_logging_internal
132)
133
134absl_cc_library(
135  NAME
136    failure_signal_handler
137  HDRS
138    "failure_signal_handler.h"
139  SRCS
140    "failure_signal_handler.cc"
141  COPTS
142    ${ABSL_DEFAULT_COPTS}
143  DEPS
144    absl::examine_stack
145    absl::stacktrace
146    absl::base
147    absl::config
148    absl::core_headers
149    absl::raw_logging_internal
150  PUBLIC
151)
152
153absl_cc_test(
154  NAME
155    failure_signal_handler_test
156  SRCS
157    "failure_signal_handler_test.cc"
158  COPTS
159    ${ABSL_TEST_COPTS}
160  DEPS
161    absl::check
162    absl::failure_signal_handler
163    absl::stacktrace
164    absl::symbolize
165    absl::strings
166    absl::raw_logging_internal
167    Threads::Threads
168    GTest::gmock
169)
170
171# Internal-only target, do not depend on directly.
172absl_cc_library(
173  NAME
174    debugging_internal
175  HDRS
176    "internal/address_is_readable.h"
177    "internal/elf_mem_image.h"
178    "internal/vdso_support.h"
179  SRCS
180    "internal/address_is_readable.cc"
181    "internal/elf_mem_image.cc"
182    "internal/vdso_support.cc"
183  COPTS
184    ${ABSL_DEFAULT_COPTS}
185  DEPS
186    absl::core_headers
187    absl::config
188    absl::dynamic_annotations
189    absl::errno_saver
190    absl::raw_logging_internal
191)
192
193# Internal-only target, do not depend on directly.
194absl_cc_library(
195  NAME
196    demangle_internal
197  HDRS
198    "internal/demangle.h"
199  SRCS
200    "internal/demangle.cc"
201  COPTS
202    ${ABSL_DEFAULT_COPTS}
203  DEPS
204    absl::config
205    absl::demangle_rust
206  PUBLIC
207)
208
209absl_cc_test(
210  NAME
211    demangle_test
212  SRCS
213    "internal/demangle_test.cc"
214  COPTS
215    ${ABSL_TEST_COPTS}
216  DEPS
217    absl::demangle_internal
218    absl::stack_consumption
219    absl::config
220    absl::core_headers
221    absl::log
222    absl::memory
223    GTest::gmock_main
224)
225
226# Internal-only target, do not depend on directly.
227absl_cc_library(
228  NAME
229    bounded_utf8_length_sequence
230  HDRS
231    "internal/bounded_utf8_length_sequence.h"
232  COPTS
233    ${ABSL_DEFAULT_COPTS}
234  DEPS
235    absl::bits
236    absl::config
237)
238
239absl_cc_test(
240  NAME
241    bounded_utf8_length_sequence_test
242  SRCS
243    "internal/bounded_utf8_length_sequence_test.cc"
244  COPTS
245    ${ABSL_TEST_COPTS}
246  DEPS
247    absl::bounded_utf8_length_sequence
248    absl::config
249    GTest::gmock_main
250)
251
252# Internal-only target, do not depend on directly.
253absl_cc_library(
254  NAME
255    decode_rust_punycode
256  HDRS
257    "internal/decode_rust_punycode.h"
258  SRCS
259    "internal/decode_rust_punycode.cc"
260  COPTS
261    ${ABSL_DEFAULT_COPTS}
262  DEPS
263    absl::bounded_utf8_length_sequence
264    absl::config
265    absl::nullability
266    absl::utf8_for_code_point
267)
268
269absl_cc_test(
270  NAME
271    decode_rust_punycode_test
272  SRCS
273    "internal/decode_rust_punycode_test.cc"
274  COPTS
275    ${ABSL_TEST_COPTS}
276  DEPS
277    absl::decode_rust_punycode
278    absl::config
279    GTest::gmock_main
280)
281
282# Internal-only target, do not depend on directly.
283absl_cc_library(
284  NAME
285    demangle_rust
286  HDRS
287    "internal/demangle_rust.h"
288  SRCS
289    "internal/demangle_rust.cc"
290  COPTS
291    ${ABSL_DEFAULT_COPTS}
292  DEPS
293    absl::config
294    absl::core_headers
295    absl::decode_rust_punycode
296)
297
298absl_cc_test(
299  NAME
300    demangle_rust_test
301  SRCS
302    "internal/demangle_rust_test.cc"
303  COPTS
304    ${ABSL_TEST_COPTS}
305  DEPS
306    absl::demangle_rust
307    absl::config
308    GTest::gmock_main
309)
310
311# Internal-only target, do not depend on directly.
312absl_cc_library(
313  NAME
314    utf8_for_code_point
315  HDRS
316    "internal/utf8_for_code_point.h"
317  SRCS
318    "internal/utf8_for_code_point.cc"
319  COPTS
320    ${ABSL_DEFAULT_COPTS}
321  DEPS
322    absl::config
323)
324
325absl_cc_test(
326  NAME
327    utf8_for_code_point_test
328  SRCS
329    "internal/utf8_for_code_point_test.cc"
330  COPTS
331    ${ABSL_TEST_COPTS}
332  DEPS
333    absl::utf8_for_code_point
334    absl::config
335    GTest::gmock_main
336)
337
338absl_cc_library(
339  NAME
340    leak_check
341  HDRS
342    "leak_check.h"
343  SRCS
344    "leak_check.cc"
345  COPTS
346    ${ABSL_DEFAULT_COPTS}
347  DEPS
348    absl::config
349    absl::core_headers
350  PUBLIC
351)
352
353absl_cc_test(
354  NAME
355    leak_check_test
356  SRCS
357    "leak_check_test.cc"
358  COPTS
359    ${ABSL_TEST_COPTS}
360  LINKOPTS
361    ${ABSL_DEFAULT_LINKOPTS}
362  DEPS
363    absl::leak_check
364    absl::base
365    absl::log
366    GTest::gmock_main
367)
368
369# Internal-only target, do not depend on directly.
370absl_cc_library(
371  NAME
372    stack_consumption
373  HDRS
374    "internal/stack_consumption.h"
375  SRCS
376    "internal/stack_consumption.cc"
377  COPTS
378    ${ABSL_DEFAULT_COPTS}
379  DEPS
380    absl::config
381    absl::core_headers
382    absl::raw_logging_internal
383  TESTONLY
384)
385
386absl_cc_test(
387  NAME
388    stack_consumption_test
389  SRCS
390    "internal/stack_consumption_test.cc"
391  COPTS
392    ${ABSL_TEST_COPTS}
393  DEPS
394    absl::stack_consumption
395    absl::core_headers
396    absl::log
397    GTest::gmock_main
398)
399
400# component target
401absl_cc_library(
402  NAME
403    debugging
404  COPTS
405    ${ABSL_DEFAULT_COPTS}
406  DEPS
407    absl::stacktrace
408    absl::leak_check
409  PUBLIC
410)
411