# Copyright 2014 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")

group("android") {
  testonly = true
  deps = [
    ":system_java",
  ]
}

generate_jni("jni_headers") {
  sources = [
    "javatests/src/org/chromium/mojo/MojoTestCase.java",
    "javatests/src/org/chromium/mojo/bindings/ValidationTestUtil.java",
  ]
  deps = [
    ":system_java_jni_headers",
  ]

  jni_package = "mojo"
}

generate_jni("system_java_jni_headers") {
  sources = [
    "system/src/org/chromium/mojo/system/impl/BaseRunLoop.java",
    "system/src/org/chromium/mojo/system/impl/CoreImpl.java",
  ]

  jni_package = "mojo"
}

source_set("libsystem_java") {
  sources = [
    "system/base_run_loop.cc",
    "system/base_run_loop.h",
    "system/core_impl.cc",
    "system/core_impl.h",
  ]

  deps = [
    ":system_java_jni_headers",
    "//base",
    "//third_party/mojo/src/mojo/public/cpp/environment",
    "//mojo/common:common",
    "//third_party/mojo/src/mojo/public/c/system:system",
    "//third_party/mojo/src/mojo/public/cpp/bindings:callback",
  ]
}

android_library("system_java") {
  java_files = [
    "system/src/org/chromium/mojo/system/impl/CoreImpl.java",
    "system/src/org/chromium/mojo/system/impl/DataPipeConsumerHandleImpl.java",
    "system/src/org/chromium/mojo/system/impl/DataPipeProducerHandleImpl.java",
    "system/src/org/chromium/mojo/system/impl/HandleBase.java",
    "system/src/org/chromium/mojo/system/impl/MessagePipeHandleImpl.java",
    "system/src/org/chromium/mojo/system/impl/SharedBufferHandleImpl.java",
    "system/src/org/chromium/mojo/system/impl/UntypedHandleImpl.java",
    "system/src/org/chromium/mojo/system/impl/BaseRunLoop.java",
  ]

  deps = [
    "//base:base_java",
    "//third_party/mojo/src/mojo/public/java:system",
  ]
}
