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/addresses.h" 178 "internal/elf_mem_image.h" 179 "internal/vdso_support.h" 180 SRCS 181 "internal/address_is_readable.cc" 182 "internal/elf_mem_image.cc" 183 "internal/vdso_support.cc" 184 COPTS 185 ${ABSL_DEFAULT_COPTS} 186 DEPS 187 absl::core_headers 188 absl::config 189 absl::dynamic_annotations 190 absl::errno_saver 191 absl::raw_logging_internal 192) 193 194# Internal-only target, do not depend on directly. 195absl_cc_library( 196 NAME 197 demangle_internal 198 HDRS 199 "internal/demangle.h" 200 SRCS 201 "internal/demangle.cc" 202 COPTS 203 ${ABSL_DEFAULT_COPTS} 204 DEPS 205 absl::config 206 absl::demangle_rust 207 PUBLIC 208) 209 210absl_cc_test( 211 NAME 212 demangle_test 213 SRCS 214 "internal/demangle_test.cc" 215 COPTS 216 ${ABSL_TEST_COPTS} 217 DEPS 218 absl::demangle_internal 219 absl::stack_consumption 220 absl::config 221 absl::core_headers 222 absl::log 223 absl::memory 224 GTest::gmock_main 225) 226 227# Internal-only target, do not depend on directly. 228absl_cc_library( 229 NAME 230 bounded_utf8_length_sequence 231 HDRS 232 "internal/bounded_utf8_length_sequence.h" 233 COPTS 234 ${ABSL_DEFAULT_COPTS} 235 DEPS 236 absl::bits 237 absl::config 238) 239 240absl_cc_test( 241 NAME 242 bounded_utf8_length_sequence_test 243 SRCS 244 "internal/bounded_utf8_length_sequence_test.cc" 245 COPTS 246 ${ABSL_TEST_COPTS} 247 DEPS 248 absl::bounded_utf8_length_sequence 249 absl::config 250 GTest::gmock_main 251) 252 253# Internal-only target, do not depend on directly. 254absl_cc_library( 255 NAME 256 decode_rust_punycode 257 HDRS 258 "internal/decode_rust_punycode.h" 259 SRCS 260 "internal/decode_rust_punycode.cc" 261 COPTS 262 ${ABSL_DEFAULT_COPTS} 263 DEPS 264 absl::bounded_utf8_length_sequence 265 absl::config 266 absl::nullability 267 absl::utf8_for_code_point 268) 269 270absl_cc_test( 271 NAME 272 decode_rust_punycode_test 273 SRCS 274 "internal/decode_rust_punycode_test.cc" 275 COPTS 276 ${ABSL_TEST_COPTS} 277 DEPS 278 absl::decode_rust_punycode 279 absl::config 280 GTest::gmock_main 281) 282 283# Internal-only target, do not depend on directly. 284absl_cc_library( 285 NAME 286 demangle_rust 287 HDRS 288 "internal/demangle_rust.h" 289 SRCS 290 "internal/demangle_rust.cc" 291 COPTS 292 ${ABSL_DEFAULT_COPTS} 293 DEPS 294 absl::config 295 absl::core_headers 296 absl::decode_rust_punycode 297) 298 299absl_cc_test( 300 NAME 301 demangle_rust_test 302 SRCS 303 "internal/demangle_rust_test.cc" 304 COPTS 305 ${ABSL_TEST_COPTS} 306 DEPS 307 absl::demangle_rust 308 absl::config 309 GTest::gmock_main 310) 311 312# Internal-only target, do not depend on directly. 313absl_cc_library( 314 NAME 315 utf8_for_code_point 316 HDRS 317 "internal/utf8_for_code_point.h" 318 SRCS 319 "internal/utf8_for_code_point.cc" 320 COPTS 321 ${ABSL_DEFAULT_COPTS} 322 DEPS 323 absl::config 324) 325 326absl_cc_test( 327 NAME 328 utf8_for_code_point_test 329 SRCS 330 "internal/utf8_for_code_point_test.cc" 331 COPTS 332 ${ABSL_TEST_COPTS} 333 DEPS 334 absl::utf8_for_code_point 335 absl::config 336 GTest::gmock_main 337) 338 339absl_cc_library( 340 NAME 341 leak_check 342 HDRS 343 "leak_check.h" 344 SRCS 345 "leak_check.cc" 346 COPTS 347 ${ABSL_DEFAULT_COPTS} 348 DEPS 349 absl::config 350 absl::core_headers 351 PUBLIC 352) 353 354absl_cc_test( 355 NAME 356 leak_check_test 357 SRCS 358 "leak_check_test.cc" 359 COPTS 360 ${ABSL_TEST_COPTS} 361 LINKOPTS 362 ${ABSL_DEFAULT_LINKOPTS} 363 DEPS 364 absl::leak_check 365 absl::base 366 absl::log 367 GTest::gmock_main 368) 369 370# Internal-only target, do not depend on directly. 371absl_cc_library( 372 NAME 373 stack_consumption 374 HDRS 375 "internal/stack_consumption.h" 376 SRCS 377 "internal/stack_consumption.cc" 378 COPTS 379 ${ABSL_DEFAULT_COPTS} 380 DEPS 381 absl::config 382 absl::core_headers 383 absl::raw_logging_internal 384 TESTONLY 385) 386 387absl_cc_test( 388 NAME 389 stack_consumption_test 390 SRCS 391 "internal/stack_consumption_test.cc" 392 COPTS 393 ${ABSL_TEST_COPTS} 394 DEPS 395 absl::stack_consumption 396 absl::core_headers 397 absl::log 398 GTest::gmock_main 399) 400 401# component target 402absl_cc_library( 403 NAME 404 debugging 405 COPTS 406 ${ABSL_DEFAULT_COPTS} 407 DEPS 408 absl::stacktrace 409 absl::leak_check 410 PUBLIC 411) 412