# Copyright 2017 The Fuchsia 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("//peridot/build/executable_package.gni")
import("//peridot/build/tests_package.gni")

executable_package("clipboard_agent") {

  meta = [
    {
      path = "meta/clipboard_agent.cmx"
      dest = "clipboard_agent.cmx"
    },
  ]

  sources = [
    "clipboard_agent.cc",
  ]

  deps = [
    ":clipboard_sources",
    "//peridot/lib/ledger_client:page_client",
    "//peridot/public/lib/app_driver/cpp:agent_driver",
    "//zircon/public/lib/async-loop-cpp",
  ]
}

source_set("clipboard_sources") {
  sources = [
    "clipboard_impl.cc",
    "clipboard_impl.h",
    "clipboard_storage.cc",
    "clipboard_storage.h",
  ]

  deps = [
    "//garnet/public/lib/fidl/cpp",
    "//peridot/lib/fidl:array_to_string",
    "//peridot/lib/ledger_client:page_client",
    "//peridot/public/fidl/fuchsia.modular",
    "//peridot/public/lib/async/cpp:operation",
  ]
}

executable("clipboard_impl_unittest") {
  testonly = true

  sources = [
    "clipboard_impl_unittest.cc",
  ]

  deps = [
    ":clipboard_sources",
    "//garnet/public/lib/gtest",
    "//peridot/lib/testing:test_with_ledger",
    "//peridot/public/fidl/fuchsia.modular",
    "//third_party/googletest:gtest_main",
  ]
}

tests_package("clipboard_unittests") {
  deps = [
    ":clipboard_impl_unittest",
  ]
}
