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

android_library("system") {
  java_files = [
    "system/src/org/chromium/mojo/system/AsyncWaiter.java",
    "system/src/org/chromium/mojo/system/Core.java",
    "system/src/org/chromium/mojo/system/DataPipe.java",
    "system/src/org/chromium/mojo/system/Flags.java",
    "system/src/org/chromium/mojo/system/Handle.java",
    "system/src/org/chromium/mojo/system/InvalidHandle.java",
    "system/src/org/chromium/mojo/system/MessagePipeHandle.java",
    "system/src/org/chromium/mojo/system/MojoException.java",
    "system/src/org/chromium/mojo/system/MojoResult.java",
    "system/src/org/chromium/mojo/system/Pair.java",
    "system/src/org/chromium/mojo/system/SharedBufferHandle.java",
    "system/src/org/chromium/mojo/system/UntypedHandle.java",
    "system/src/org/chromium/mojo/system/RunLoop.java",
  ]
}

android_library("bindings") {
  java_files = [
    "bindings/src/org/chromium/mojo/bindings/AutoCloseableRouter.java",
    "bindings/src/org/chromium/mojo/bindings/BindingsHelper.java",
    "bindings/src/org/chromium/mojo/bindings/Callbacks.java",
    "bindings/src/org/chromium/mojo/bindings/ConnectionErrorHandler.java",
    "bindings/src/org/chromium/mojo/bindings/Connector.java",
    "bindings/src/org/chromium/mojo/bindings/Decoder.java",
    "bindings/src/org/chromium/mojo/bindings/DelegatingConnectionErrorHandler.java",
    "bindings/src/org/chromium/mojo/bindings/DeserializationException.java",
    "bindings/src/org/chromium/mojo/bindings/Encoder.java",
    "bindings/src/org/chromium/mojo/bindings/ExecutorFactory.java",
    "bindings/src/org/chromium/mojo/bindings/HandleOwner.java",
    "bindings/src/org/chromium/mojo/bindings/Interface.java",
    "bindings/src/org/chromium/mojo/bindings/InterfaceRequest.java",
    "bindings/src/org/chromium/mojo/bindings/MessageHeader.java",
    "bindings/src/org/chromium/mojo/bindings/Message.java",
    "bindings/src/org/chromium/mojo/bindings/MessageReceiver.java",
    "bindings/src/org/chromium/mojo/bindings/MessageReceiverWithResponder.java",
    "bindings/src/org/chromium/mojo/bindings/RouterImpl.java",
    "bindings/src/org/chromium/mojo/bindings/Router.java",
    "bindings/src/org/chromium/mojo/bindings/SerializationException.java",
    "bindings/src/org/chromium/mojo/bindings/ServiceMessage.java",
    "bindings/src/org/chromium/mojo/bindings/SideEffectFreeCloseable.java",
    "bindings/src/org/chromium/mojo/bindings/Struct.java",
  ]

  deps = [
    ":system",
  ]
}

android_library("application") {
  java_files = [
    "application/src/org/chromium/mojo/application/ApplicationConnection.java",
    "application/src/org/chromium/mojo/application/ApplicationDelegate.java",
    "application/src/org/chromium/mojo/application/ApplicationImpl.java",
    "application/src/org/chromium/mojo/application/ApplicationRunner.java",
    "application/src/org/chromium/mojo/application/ServiceFactoryBinder.java",
  ]
  deps = [
    ":bindings",
    ":system",
    "../interfaces/application:application_java",
  ]
}
