blob: 63febc8232b1668e01ae298ddf91ff1b813f4bc6 [file] [log] [blame]
# Copyright 2013 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/config/compiler/compiler.gni")
declare_args() {
# Stack traces will not include function names. Instead they will contain
# file and offset information that can be used with
# tools/valgrind/asan/asan_symbolize.py. By piping stderr through this script,
# and also enabling symbol_level = 2, you can get much more detailed stack
# traces with file names and line numbers, even in non-ASAN builds.
print_unsymbolized_stack_traces = is_asan || is_lsan || is_msan || is_tsan
}
config("symbolize_config") {
defines = [
# Only built for Linux and ChromeOS so no special export magic needed.
"GLOG_EXPORT=",
]
}
static_library("symbolize") {
visibility = [ "//base/*" ]
sources = [
"config.h",
"demangle.cc",
"demangle.h",
"glog/logging.h",
"glog/raw_logging.h",
"symbolize.cc",
"symbolize.h",
"utilities.h",
]
defines = []
if (print_unsymbolized_stack_traces) {
defines += [ "PRINT_UNSYMBOLIZED_STACK_TRACES" ]
}
configs -= [ "//build/config/compiler:chromium_code" ]
configs += [ "//build/config/compiler:no_chromium_code" ]
public_configs = [ ":symbolize_config" ]
}