| # Copyright 2017 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/android/rules.gni") |
| import("//third_party/jni_zero/jni_zero.gni") |
| |
| _jni_sources = [ |
| "java/src/org/chromium/components/crash/CrashKeys.java", |
| "java/src/org/chromium/components/crash/PureJavaExceptionHandler.java", |
| ] |
| |
| generate_jni("jni_headers") { |
| sources = _jni_sources |
| } |
| |
| generate_jni("package_paths_jni") { |
| sources = |
| [ "java/src/org/chromium/components/crash/browser/PackagePaths.java" ] |
| } |
| |
| java_cpp_enum("java_enums_srcjar") { |
| sources = [ "crash_keys_android.h" ] |
| } |
| |
| android_library("java") { |
| deps = [ |
| ":jni_headers_java", |
| "//base:base_java", |
| "//base/version_info/android:version_constants_java", |
| "//build/android:build_java", |
| "//components/crash/content/browser:jni_headers_java", |
| "//components/minidump_uploader:minidump_uploader_java", |
| "//content/public/android:content_main_dex_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/jni_zero:jni_zero_java", |
| ] |
| |
| srcjar_deps = [ ":java_enums_srcjar" ] |
| sources = [ |
| "java/src/org/chromium/components/crash/CustomAssertionHandler.java", |
| "java/src/org/chromium/components/crash/LogcatCrashExtractor.java", |
| "java/src/org/chromium/components/crash/MinidumpLogcatPrepender.java", |
| "java/src/org/chromium/components/crash/NativeAndJavaSmartExceptionReporter.java", |
| "java/src/org/chromium/components/crash/PureJavaExceptionReporter.java", |
| "java/src/org/chromium/components/crash/browser/ChildProcessCrashObserver.java", |
| "java/src/org/chromium/components/crash/browser/PackagePaths.java", |
| "java/src/org/chromium/components/crash/browser/ProcessExitReasonFromSystem.java", |
| ] |
| sources += _jni_sources |
| } |
| |
| robolectric_library("junit") { |
| sources = [ |
| "junit/src/org/chromium/components/crash/LogcatCrashExtractorTest.java", |
| "junit/src/org/chromium/components/crash/PureJavaExceptionReporterTest.java", |
| "junit/src/org/chromium/components/crash/anr/AnrCollectorTest.java", |
| ] |
| deps = [ |
| ":anr_collector_java", |
| ":anr_data_proto_java", |
| ":java", |
| "//base:base_java_test_support", |
| "//base:base_junit_test_support", |
| "//base:tasks_java", |
| "//base/version_info/android:version_constants_java", |
| "//components/minidump_uploader:minidump_uploader_java_test_support", |
| "//content/public/test/android:content_java_test_support", |
| "//third_party/androidx:androidx_test_runner_java", |
| "//third_party/junit", |
| ] |
| } |
| |
| source_set("anr_build_id_provider") { |
| sources = [ |
| "anr_build_id_provider.cc", |
| "anr_build_id_provider.h", |
| ] |
| deps = [ "//base" ] |
| } |
| |
| source_set("crash_android") { |
| sources = [ |
| "crash_keys_android.cc", |
| "crash_keys_android.h", |
| "pure_java_exception_handler.cc", |
| "pure_java_exception_handler.h", |
| ] |
| deps = [ |
| ":jni_headers", |
| "//base", |
| "//components/crash/core/common:crash_key", |
| ] |
| } |
| |
| source_set("unit_tests") { |
| testonly = true |
| sources = [ "crash_keys_android_unittest.cc" ] |
| deps = [ |
| ":crash_android", |
| "//components/crash/core/common:crash_key", |
| "//testing/gtest", |
| ] |
| } |
| |
| _java_handler_jni_sources = |
| [ "java/src/org/chromium/components/crash/browser/CrashpadMain.java" ] |
| |
| generate_jni("java_handler_jni_headers") { |
| sources = _java_handler_jni_sources |
| } |
| |
| android_library("handler_java") { |
| deps = [ |
| "//build/android:build_java", |
| "//third_party/jni_zero:jni_zero_java", |
| ] |
| |
| srcjar_deps = [ ":java_handler_jni_headers" ] |
| sources = _java_handler_jni_sources |
| } |
| |
| static_library("crashpad_main") { |
| sources = [ "crashpad_main.cc" ] |
| |
| deps = [ |
| ":java_handler_jni_headers", |
| "//base", |
| "//third_party/crashpad/crashpad/client", |
| "//third_party/crashpad/crashpad/handler", |
| ] |
| } |
| |
| source_set("anr_skipped_reason") { |
| sources = [ "anr_skipped_reason.h" ] |
| } |
| java_cpp_enum("anr_skipped_reason_enum") { |
| sources = [ "anr_skipped_reason.h" ] |
| } |
| |
| proto_java_library("anr_data_proto_java") { |
| proto_path = "." |
| sources = [ "anr_data.proto" ] |
| } |
| |
| _anr_collector_jni_sources = |
| [ "java/src/org/chromium/components/crash/anr/AnrCollector.java" ] |
| |
| generate_jni("anr_collector_jni_headers") { |
| sources = _anr_collector_jni_sources |
| } |
| android_library("anr_collector_java") { |
| deps = [ |
| ":anr_data_proto_java", |
| "//base:base_java", |
| "//base/version_info/android:version_constants_java", |
| "//build/android:build_java", |
| "//third_party/android_deps:protobuf_lite_runtime_java", |
| "//third_party/androidx:androidx_annotation_annotation_java", |
| "//third_party/jni_zero:jni_zero_java", |
| ] |
| |
| srcjar_deps = [ |
| ":anr_collector_jni_headers", |
| ":anr_skipped_reason_enum", |
| ] |
| sources = _anr_collector_jni_sources |
| } |