# 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 = [
    "//sdk/fidl/fuchsia.modular",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//src/ledger/cloud_provider_in_memory/lib",
    "//src/ledger/lib/logging",
    "//src/ledger/lib/rng:system",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/async-loop-default",
    "//zircon/public/lib/trace-provider-so",
  ]
}

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" ]
}
