| # 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") { |
| cflags = [ |
| "-fstrict-aliasing", |
| "-fPIC", |
| |
| # ValueAsBitPattern in Unwind-EHABI.cpp is only used on Debug builds. |
| "-Wno-unused-function", |
| ] |
| } |
| |
| source_set("libunwind") { |
| visibility = [] |
| if (is_fuchsia) { |
| visibility += [ "//buildtools/third_party/libc++abi" ] |
| } else if (is_android) { |
| visibility += [ "//components/tracing" ] |
| } |
| if (!is_component_build) { |
| 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", |
| |
| # Must be after no_chromium_code |
| ":libunwind_config", |
| ] |
| } |