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 17absl_cc_library( 18 NAME 19 stacktrace 20 HDRS 21 "stacktrace.h" 22 "internal/stacktrace_aarch64-inl.inc" 23 "internal/stacktrace_arm-inl.inc" 24 "internal/stacktrace_config.h" 25 "internal/stacktrace_emscripten-inl.inc" 26 "internal/stacktrace_generic-inl.inc" 27 "internal/stacktrace_powerpc-inl.inc" 28 "internal/stacktrace_riscv-inl.inc" 29 "internal/stacktrace_unimplemented-inl.inc" 30 "internal/stacktrace_win32-inl.inc" 31 "internal/stacktrace_x86-inl.inc" 32 SRCS 33 "stacktrace.cc" 34 COPTS 35 ${ABSL_DEFAULT_COPTS} 36 DEPS 37 absl::debugging_internal 38 absl::config 39 absl::core_headers 40 PUBLIC 41) 42 43absl_cc_library( 44 NAME 45 symbolize 46 HDRS 47 "symbolize.h" 48 "internal/symbolize.h" 49 SRCS 50 "symbolize.cc" 51 "symbolize_darwin.inc" 52 "symbolize_elf.inc" 53 "symbolize_emscripten.inc" 54 "symbolize_unimplemented.inc" 55 "symbolize_win32.inc" 56 COPTS 57 ${ABSL_DEFAULT_COPTS} 58 LINKOPTS 59 ${ABSL_DEFAULT_LINKOPTS} 60 $<$<BOOL:${MINGW}>:"dbghelp"> 61 DEPS 62 absl::debugging_internal 63 absl::demangle_internal 64 absl::base 65 absl::config 66 absl::core_headers 67 absl::dynamic_annotations 68 absl::malloc_internal 69 absl::raw_logging_internal 70 absl::strings 71 PUBLIC 72) 73 74absl_cc_test( 75 NAME 76 symbolize_test 77 SRCS 78 "symbolize_test.cc" 79 COPTS 80 ${ABSL_TEST_COPTS} 81 $<$<BOOL:${MSVC}>:-Z7> 82 LINKOPTS 83 $<$<BOOL:${MSVC}>:-DEBUG> 84 DEPS 85 absl::stack_consumption 86 absl::symbolize 87 absl::base 88 absl::config 89 absl::core_headers 90 absl::memory 91 absl::raw_logging_internal 92 absl::strings 93 GTest::gmock 94) 95 96# Internal-only target, do not depend on directly. 97absl_cc_library( 98 NAME 99 examine_stack 100 HDRS 101 "internal/examine_stack.h" 102 SRCS 103 "internal/examine_stack.cc" 104 COPTS 105 ${ABSL_DEFAULT_COPTS} 106 DEPS 107 absl::stacktrace 108 absl::symbolize 109 absl::config 110 absl::core_headers 111 absl::raw_logging_internal 112) 113 114absl_cc_library( 115 NAME 116 failure_signal_handler 117 HDRS 118 "failure_signal_handler.h" 119 SRCS 120 "failure_signal_handler.cc" 121 COPTS 122 ${ABSL_DEFAULT_COPTS} 123 DEPS 124 absl::examine_stack 125 absl::stacktrace 126 absl::base 127 absl::config 128 absl::core_headers 129 absl::errno_saver 130 absl::raw_logging_internal 131 PUBLIC 132) 133 134absl_cc_test( 135 NAME 136 failure_signal_handler_test 137 SRCS 138 "failure_signal_handler_test.cc" 139 COPTS 140 ${ABSL_TEST_COPTS} 141 DEPS 142 absl::failure_signal_handler 143 absl::stacktrace 144 absl::symbolize 145 absl::strings 146 absl::raw_logging_internal 147 Threads::Threads 148 GTest::gmock 149) 150 151# Internal-only target, do not depend on directly. 152absl_cc_library( 153 NAME 154 debugging_internal 155 HDRS 156 "internal/address_is_readable.h" 157 "internal/elf_mem_image.h" 158 "internal/vdso_support.h" 159 SRCS 160 "internal/address_is_readable.cc" 161 "internal/elf_mem_image.cc" 162 "internal/vdso_support.cc" 163 COPTS 164 ${ABSL_DEFAULT_COPTS} 165 DEPS 166 absl::core_headers 167 absl::config 168 absl::dynamic_annotations 169 absl::errno_saver 170 absl::raw_logging_internal 171) 172 173# Internal-only target, do not depend on directly. 174absl_cc_library( 175 NAME 176 demangle_internal 177 HDRS 178 "internal/demangle.h" 179 SRCS 180 "internal/demangle.cc" 181 COPTS 182 ${ABSL_DEFAULT_COPTS} 183 DEPS 184 absl::base 185 absl::core_headers 186 PUBLIC 187) 188 189absl_cc_test( 190 NAME 191 demangle_test 192 SRCS 193 "internal/demangle_test.cc" 194 COPTS 195 ${ABSL_TEST_COPTS} 196 DEPS 197 absl::demangle_internal 198 absl::stack_consumption 199 absl::config 200 absl::core_headers 201 absl::memory 202 absl::raw_logging_internal 203 GTest::gmock_main 204) 205 206absl_cc_library( 207 NAME 208 leak_check 209 HDRS 210 "leak_check.h" 211 SRCS 212 "leak_check.cc" 213 COPTS 214 ${ABSL_DEFAULT_COPTS} 215 DEPS 216 absl::config 217 absl::core_headers 218 PUBLIC 219) 220 221absl_cc_library( 222 NAME 223 leak_check_disable 224 SRCS 225 "leak_check_disable.cc" 226 COPTS 227 ${ABSL_DEFAULT_COPTS} 228 PUBLIC 229) 230 231absl_cc_library( 232 NAME 233 leak_check_api_enabled_for_testing 234 HDRS 235 "leak_check.h" 236 SRCS 237 "leak_check.cc" 238 COPTS 239 ${ABSL_DEFAULT_COPTS} 240 $<$<BOOL:${ABSL_HAVE_LSAN}>:-DLEAK_SANITIZER> 241 TESTONLY 242) 243 244absl_cc_library( 245 NAME 246 leak_check_api_disabled_for_testing 247 HDRS 248 "leak_check.h" 249 SRCS 250 "leak_check.cc" 251 COPTS 252 ${ABSL_DEFAULT_COPTS} 253 "-ULEAK_SANITIZER" 254 TESTONLY 255) 256 257absl_cc_test( 258 NAME 259 leak_check_test 260 SRCS 261 "leak_check_test.cc" 262 COPTS 263 ${ABSL_TEST_COPTS} 264 "$<$<BOOL:${ABSL_HAVE_LSAN}>:-DABSL_EXPECT_LEAK_SANITIZER>" 265 LINKOPTS 266 "${ABSL_LSAN_LINKOPTS}" 267 DEPS 268 absl::leak_check_api_enabled_for_testing 269 absl::base 270 GTest::gmock_main 271) 272 273absl_cc_test( 274 NAME 275 leak_check_no_lsan_test 276 SRCS 277 "leak_check_test.cc" 278 COPTS 279 ${ABSL_TEST_COPTS} 280 "-UABSL_EXPECT_LEAK_SANITIZER" 281 DEPS 282 absl::leak_check_api_disabled_for_testing 283 absl::base 284 GTest::gmock_main 285) 286 287absl_cc_test( 288 NAME 289 disabled_leak_check_test 290 SRCS 291 "leak_check_fail_test.cc" 292 COPTS 293 ${ABSL_TEST_COPTS} 294 LINKOPTS 295 "${ABSL_LSAN_LINKOPTS}" 296 DEPS 297 absl::leak_check_api_enabled_for_testing 298 absl::leak_check_disable 299 absl::base 300 absl::raw_logging_internal 301 GTest::gmock_main 302) 303 304# Internal-only target, do not depend on directly. 305absl_cc_library( 306 NAME 307 stack_consumption 308 HDRS 309 "internal/stack_consumption.h" 310 SRCS 311 "internal/stack_consumption.cc" 312 COPTS 313 ${ABSL_DEFAULT_COPTS} 314 DEPS 315 absl::config 316 absl::core_headers 317 absl::raw_logging_internal 318 TESTONLY 319) 320 321absl_cc_test( 322 NAME 323 stack_consumption_test 324 SRCS 325 "internal/stack_consumption_test.cc" 326 COPTS 327 ${ABSL_TEST_COPTS} 328 DEPS 329 absl::stack_consumption 330 absl::core_headers 331 absl::raw_logging_internal 332 GTest::gmock_main 333) 334 335# component target 336absl_cc_library( 337 NAME 338 debugging 339 COPTS 340 ${ABSL_DEFAULT_COPTS} 341 DEPS 342 absl::stacktrace 343 absl::leak_check 344 PUBLIC 345) 346