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::base 205 absl::core_headers 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 226absl_cc_library( 227 NAME 228 leak_check 229 HDRS 230 "leak_check.h" 231 SRCS 232 "leak_check.cc" 233 COPTS 234 ${ABSL_DEFAULT_COPTS} 235 DEPS 236 absl::config 237 absl::core_headers 238 PUBLIC 239) 240 241absl_cc_test( 242 NAME 243 leak_check_test 244 SRCS 245 "leak_check_test.cc" 246 COPTS 247 ${ABSL_TEST_COPTS} 248 LINKOPTS 249 ${ABSL_DEFAULT_LINKOPTS} 250 DEPS 251 absl::leak_check 252 absl::base 253 absl::log 254 GTest::gmock_main 255) 256 257# Internal-only target, do not depend on directly. 258absl_cc_library( 259 NAME 260 stack_consumption 261 HDRS 262 "internal/stack_consumption.h" 263 SRCS 264 "internal/stack_consumption.cc" 265 COPTS 266 ${ABSL_DEFAULT_COPTS} 267 DEPS 268 absl::config 269 absl::core_headers 270 absl::raw_logging_internal 271 TESTONLY 272) 273 274absl_cc_test( 275 NAME 276 stack_consumption_test 277 SRCS 278 "internal/stack_consumption_test.cc" 279 COPTS 280 ${ABSL_TEST_COPTS} 281 DEPS 282 absl::stack_consumption 283 absl::core_headers 284 absl::log 285 GTest::gmock_main 286) 287 288# component target 289absl_cc_library( 290 NAME 291 debugging 292 COPTS 293 ${ABSL_DEFAULT_COPTS} 294 DEPS 295 absl::stacktrace 296 absl::leak_check 297 PUBLIC 298) 299