# 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("//build/package.gni")

visibility = [ "//src/ledger/*" ]

executable("app") {
  output_name = "cloud_provider_in_memory"

  sources = [
    "app.cc",
  ]

  deps = [
    "//peridot/lib/rng:system",
    "//sdk/fidl/fuchsia.modular",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//src/ledger/cloud_provider_in_memory/lib",
    "//src/lib/fxl",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider",
  ]
}

package("bin") {
  deps = [
    ":app",
  ]

  package_name = "cloud_provider_in_memory"
  binary = "cloud_provider_in_memory"

  meta = [
    {
      path = rebase_path("cloud_provider_in_memory.cmx")
      dest = "cloud_provider_in_memory.cmx"
    },
  ]
}

group("tests") {
  testonly = true

  public_deps = [
    "//src/ledger/cloud_provider_in_memory/bin/validation",
  ]
}
