|  | # Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | import("//build/config/c++/c++.gni") | 
|  |  | 
|  | config("libunwind_config") { | 
|  | # ValueAsBitPattern in Unwind-EHABI.cpp is only used on Debug builds. | 
|  | cflags = [ "-Wno-unused-function" ] | 
|  | } | 
|  |  | 
|  | source_set("libunwind") { | 
|  | visibility = [ "//buildtools/third_party/libc++abi" ] | 
|  |  | 
|  | if (libcpp_is_static) { | 
|  | defines = [ "_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS" ] | 
|  | } | 
|  | include_dirs = [ "//buildtools/third_party/libunwind/trunk/include" ] | 
|  | sources = [ | 
|  | # C++ sources | 
|  | "trunk/src/Unwind-EHABI.cpp", | 
|  | "trunk/src/libunwind.cpp", | 
|  |  | 
|  | # C sources | 
|  | "trunk/src/Unwind-sjlj.c", | 
|  | "trunk/src/UnwindLevel1-gcc-ext.c", | 
|  | "trunk/src/UnwindLevel1.c", | 
|  |  | 
|  | # ASM sources | 
|  | "trunk/src/UnwindRegistersRestore.S", | 
|  | "trunk/src/UnwindRegistersSave.S", | 
|  | ] | 
|  | configs -= [ | 
|  | "//build/config/compiler:chromium_code", | 
|  | "//build/config/compiler:no_exceptions", | 
|  | "//build/config/compiler:no_rtti", | 
|  | "//build/config/coverage:default_coverage", | 
|  | ] | 
|  | configs += [ | 
|  | "//build/config/compiler:no_chromium_code", | 
|  | "//build/config/compiler:exceptions", | 
|  | "//build/config/compiler:rtti", | 
|  | "//buildtools/third_party/libc++:config", | 
|  |  | 
|  | # Must be after no_chromium_code | 
|  | ":libunwind_config", | 
|  | ] | 
|  | } |