# Copyright 2015 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.

if (is_android) {
  import("//build/config/android/config.gni")
  import("//build/config/android/rules.gni")

  android_library("keyboard") {
    java_files = [
      "src/org/chromium/mojo/keyboard/InputConnectionAdaptor.java",
      "src/org/chromium/mojo/keyboard/KeyboardServiceImpl.java",
      "src/org/chromium/mojo/keyboard/KeyboardServiceState.java",
    ]

    deps = [
      "//mojo/public/java:bindings",
      "//mojo/public/java:system",
      "//mojo/services/keyboard/interfaces:interfaces_java",
    ]
  }
}

if (is_linux) {
  import("//mojo/public/mojo_application.gni")

  mojo_native_application("keyboard") {
    sources = [
      "linux/keyboard_service_impl.cc",
      "linux/main.cc",
    ]

    deps = [
      "//base",
      "//mojo/application",
      "//mojo/public/cpp/application",
      "//mojo/public/cpp/bindings:callback",
      "//mojo/public/cpp/system",
      "//mojo/services/keyboard/interfaces",
      "//mojo/services/native_viewport/interfaces",
      "//mojo/services/native_viewport/cpp:args",
    ]
  }
}
