# 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",
  ]
}
