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

# GYP version: mojo/mojo_services.gypi:mojo_clipboard
shared_library("clipboard") {
  sources = [
    "clipboard_standalone_impl.cc",
    "clipboard_standalone_impl.h",
    "main.cc",
  ]

  deps = [
    "//base",
    "//mojo/application",
    "//mojo/common",
    "//mojo/environment:chromium",
    "//mojo/public/c/system:for_shared_library",
    "//mojo/public/cpp/bindings",
    "//mojo/services/public/interfaces/clipboard",
    "//ui/base",
  ]
}

# GYP version: mojo/mojo_services.gypi:mojo_clipboard_unittests
test("clipboard_unittests") {
  sources = [
    "clipboard_standalone_unittest.cc",
  ]

  deps = [
    "//base",
    "//base/test:test_support",
    "//mojo/application",
    "//mojo/application_manager",
    "//mojo/common",
    "//mojo/edk/system",
    "//mojo/edk/test:run_all_unittests",
    "//mojo/environment:chromium",
    "//mojo/services/public/interfaces/clipboard:clipboard",
    "//mojo/shell:test_support",
    "//testing/gtest",
  ]
}
