# Copyright 2016 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/android/rules.gni")

generate_jni("minidump_uploader_jni_headers") {
  sources = [
    "android/java/src/org/chromium/components/minidump_uploader/CrashReportMimeWriter.java",
  ]
  jni_package = "components/minidump_uploader"
}

static_library("minidump_uploader") {
  sources = [
    "rewrite_minidumps_as_mimes.cc",
    "rewrite_minidumps_as_mimes.h",
  ]

  deps = [
    ":minidump_uploader_jni_headers",
    "//base",
    "//third_party/crashpad/crashpad/client",
    "//third_party/crashpad/crashpad/handler",
    "//third_party/crashpad/crashpad/snapshot",
    "//third_party/crashpad/crashpad/util",
  ]
}

android_library("minidump_uploader_java") {
  deps = [
    "//base:base_java",
    "//third_party/android_deps:android_support_annotations_java",
  ]

  java_files = [
    "android/java/src/org/chromium/components/minidump_uploader/CrashFileManager.java",
    "android/java/src/org/chromium/components/minidump_uploader/CrashReportMimeWriter.java",
    "android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadCallable.java",
    "android/java/src/org/chromium/components/minidump_uploader/MinidumpUploadJobService.java",
    "android/java/src/org/chromium/components/minidump_uploader/MinidumpUploader.java",
    "android/java/src/org/chromium/components/minidump_uploader/MinidumpUploaderDelegate.java",
    "android/java/src/org/chromium/components/minidump_uploader/MinidumpUploaderImpl.java",
    "android/java/src/org/chromium/components/minidump_uploader/util/CrashReportingPermissionManager.java",
    "android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactory.java",
    "android/java/src/org/chromium/components/minidump_uploader/util/HttpURLConnectionFactoryImpl.java",
    "android/java/src/org/chromium/components/minidump_uploader/util/NetworkPermissionUtil.java",
  ]
}

android_library("minidump_uploader_javatests") {
  testonly = true
  deps = [
    ":minidump_uploader_java",
    "//base:base_java",
    "//base:base_java_test_support",
    "//third_party/android_support_test_runner:runner_java",
    "//third_party/junit",
  ]
  java_files = [
    "android/javatests/src/org/chromium/components/minidump_uploader/CrashFileManagerTest.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/CrashTestRule.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploadCallableTest.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploadTestUtility.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/MinidumpUploaderImplTest.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/TestMinidumpUploaderDelegate.java",
    "android/javatests/src/org/chromium/components/minidump_uploader/TestMinidumpUploaderImpl.java",
  ]
}
