BUILD.gn 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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/android/rules.gni")
  5. _jni_sources = [
  6. "java/src/org/chromium/components/crash/CrashKeys.java",
  7. "java/src/org/chromium/components/crash/PureJavaExceptionHandler.java",
  8. "java/src/org/chromium/components/crash/browser/ChildProcessCrashObserver.java",
  9. "java/src/org/chromium/components/crash/browser/PackagePaths.java",
  10. "java/src/org/chromium/components/crash/browser/ProcessExitReasonFromSystem.java",
  11. ]
  12. generate_jni("jni_headers") {
  13. sources = _jni_sources
  14. }
  15. java_cpp_enum("java_enums_srcjar") {
  16. sources = [ "crash_keys_android.h" ]
  17. }
  18. android_library("java") {
  19. deps = [
  20. "//base:base_java",
  21. "//base:jni_java",
  22. "//build/android:build_java",
  23. "//components/minidump_uploader:minidump_uploader_java",
  24. "//components/version_info/android:version_constants_java",
  25. "//third_party/androidx:androidx_annotation_annotation_java",
  26. ]
  27. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  28. srcjar_deps = [ ":java_enums_srcjar" ]
  29. sources = [
  30. "java/src/org/chromium/components/crash/LogcatCrashExtractor.java",
  31. "java/src/org/chromium/components/crash/MinidumpLogcatPrepender.java",
  32. "java/src/org/chromium/components/crash/PureJavaExceptionReporter.java",
  33. ]
  34. sources += _jni_sources
  35. }
  36. robolectric_library("junit") {
  37. sources = [
  38. "junit/src/org/chromium/components/crash/LogcatCrashExtractorTest.java",
  39. "junit/src/org/chromium/components/crash/PureJavaExceptionReporterTest.java",
  40. "junit/src/org/chromium/components/crash/anr/AnrCollectorTest.java",
  41. ]
  42. deps = [
  43. ":anr_collector_java",
  44. ":anr_data_proto_java",
  45. ":java",
  46. "//base:base_java_test_support",
  47. "//base:base_junit_test_support",
  48. "//components/minidump_uploader:minidump_uploader_java_test_support",
  49. "//content/public/test/android:content_java_test_support",
  50. "//third_party/androidx:androidx_test_runner_java",
  51. "//third_party/junit",
  52. ]
  53. }
  54. source_set("crash_android") {
  55. sources = [
  56. "crash_keys_android.cc",
  57. "crash_keys_android.h",
  58. "pure_java_exception_handler.cc",
  59. "pure_java_exception_handler.h",
  60. ]
  61. deps = [
  62. ":jni_headers",
  63. "//base",
  64. "//components/crash/core/common:crash_key",
  65. ]
  66. }
  67. source_set("unit_tests") {
  68. testonly = true
  69. sources = [ "crash_keys_android_unittest.cc" ]
  70. deps = [
  71. ":crash_android",
  72. "//components/crash/core/common:crash_key",
  73. "//testing/gtest",
  74. ]
  75. }
  76. _java_handler_jni_sources =
  77. [ "java/src/org/chromium/components/crash/browser/CrashpadMain.java" ]
  78. generate_jni("java_handler_jni_headers") {
  79. sources = _java_handler_jni_sources
  80. }
  81. android_library("handler_java") {
  82. deps = [
  83. "//base:jni_java",
  84. "//build/android:build_java",
  85. ]
  86. annotation_processor_deps = [ "//base/android/jni_generator:jni_processor" ]
  87. sources = _java_handler_jni_sources
  88. }
  89. static_library("crashpad_main") {
  90. sources = [ "crashpad_main.cc" ]
  91. deps = [
  92. ":java_handler_jni_headers",
  93. "//base",
  94. "//third_party/crashpad/crashpad/client",
  95. "//third_party/crashpad/crashpad/handler",
  96. ]
  97. }
  98. source_set("anr_skipped_reason") {
  99. sources = [ "anr_skipped_reason.h" ]
  100. }
  101. java_cpp_enum("anr_skipped_reason_enum") {
  102. sources = [ "anr_skipped_reason.h" ]
  103. }
  104. proto_java_library("anr_data_proto_java") {
  105. proto_path = "."
  106. sources = [ "anr_data.proto" ]
  107. }
  108. android_library("anr_collector_java") {
  109. deps = [
  110. ":anr_data_proto_java",
  111. "//base:base_java",
  112. "//third_party/androidx:androidx_annotation_annotation_java",
  113. ]
  114. srcjar_deps = [ ":anr_skipped_reason_enum" ]
  115. sources = [ "java/src/org/chromium/components/crash/anr/AnrCollector.java" ]
  116. }