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

import("//mojo/android/rules.gni")

mojo_android_java_application("contacts") {
  sources = [
    "src/org/chromium/services/contacts/ContactsApplicationDelegate.java",
    "src/org/chromium/services/contacts/ContactsServiceImpl.java",
  ]

  mojo_main = "org.chromium.services.contacts.ContactsApplicationDelegate"

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

mojo_native_application("apptests") {
  output_name = "contacts_apptests"

  testonly = true

  sources = [
    "contacts_apptest.cc",
  ]

  deps = [
    "//base",
    "//mojo/application",
    "//mojo/application:test_support",
    "//mojo/public/cpp/bindings",
    "//mojo/services/contacts/public/interfaces",
  ]

  data_deps = [ ":contacts($default_toolchain)" ]
}
