# 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("//mojo/public/mojo_application.gni")

mojo_native_application("clipboard") {
  sources = [
    "clipboard_standalone_impl.cc",
    "clipboard_standalone_impl.h",
    "main.cc",
  ]

  deps = [
    "//base",
    "//mojo/application",
    "//mojo/environment:chromium",
    "//mojo/public/cpp/bindings",
    "//mojo/public/cpp/bindings:callback",
    "//mojo/services/clipboard/interfaces",
  ]
}

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

  testonly = true

  sources = [
    "clipboard_apptest.cc",
  ]

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

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