BUILD.gn 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. # Copyright 2017 The Chromium Authors. All rights reserved.
  2. # Use of this source code is governed by a BSD-style license that can be
  3. # found in the LICENSE file.
  4. import("//build/config/c++/c++.gni")
  5. config("libunwind_config") {
  6. defines = [ "_LIBUNWIND_IS_NATIVE_ONLY" ]
  7. cflags = [
  8. "-fstrict-aliasing",
  9. "-fPIC",
  10. # ValueAsBitPattern in Unwind-EHABI.cpp is only used on Debug builds.
  11. "-Wno-unused-function",
  12. # libunwind expects to be compiled with unwind tables so it can
  13. # unwind its own frames.
  14. "-funwind-tables",
  15. ]
  16. }
  17. source_set("libunwind") {
  18. visibility = []
  19. if (is_fuchsia) {
  20. visibility += [ "//buildtools/third_party/libc++abi" ]
  21. } else if (is_android) {
  22. visibility += [ "//buildtools/third_party/libc++abi" ]
  23. visibility += [ "//services/tracing/public/cpp" ]
  24. }
  25. if (!is_component_build) {
  26. defines = [ "_LIBUNWIND_DISABLE_VISIBILITY_ANNOTATIONS" ]
  27. }
  28. include_dirs = [ "//buildtools/third_party/libunwind/trunk/include" ]
  29. sources = [
  30. # C++ sources
  31. "trunk/src/Unwind-EHABI.cpp",
  32. "trunk/src/libunwind.cpp",
  33. # C sources
  34. "trunk/src/Unwind-sjlj.c",
  35. "trunk/src/UnwindLevel1-gcc-ext.c",
  36. "trunk/src/UnwindLevel1.c",
  37. # ASM sources
  38. "trunk/src/UnwindRegistersRestore.S",
  39. "trunk/src/UnwindRegistersSave.S",
  40. ]
  41. configs -= [
  42. "//build/config/compiler:chromium_code",
  43. "//build/config/compiler:no_exceptions",
  44. "//build/config/compiler:no_rtti",
  45. "//build/config/coverage:default_coverage",
  46. "//build/config/compiler:default_optimization",
  47. ]
  48. configs += [
  49. "//build/config/compiler:no_chromium_code",
  50. "//build/config/compiler:exceptions",
  51. "//build/config/compiler:rtti",
  52. "//build/config/compiler:optimize_speed",
  53. # Must be after no_chromium_code
  54. ":libunwind_config",
  55. ]
  56. }