# 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/ResultAnd.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("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",
    "application/src/org/chromium/mojo/application/ShellHelper.java",
  ]
  deps = [
    ":bindings",
    ":system",
    "../interfaces/application:application_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/DataHeader.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/InterfaceControlMessagesHelper.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",
    "bindings/src/org/chromium/mojo/bindings/Union.java",
  ]

  deps = [
    ":system",
  ]

  srcjar_deps = [ "../interfaces/bindings:bindings_java_sources" ]
}
