# 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")

package("bin") {
  package_name = "cloud_provider_firestore"

  deps = [
    "app",
    "//src/ledger/bin/cobalt:ledger_metrics_registry",
  ]

  resources = [
    {
      path = rebase_path(
              get_label_info("//src/ledger/bin/cobalt:ledger_metrics_registry",
                             "target_gen_dir") + "/ledger_metrics_registry.pb")
      dest = "firebase_auth_ledger_metrics_config.pb"
    },
  ]

  binary = "cloud_provider_firestore"

  meta = [
    {
      path = rebase_path("app/meta/cloud_provider_firestore.cmx")
      dest = "cloud_provider_firestore.cmx"
    },
  ]
}

executable("unittests") {
  testonly = true

  output_name = "cloud_provider_firestore_unittests"

  deps = [
    "//src/ledger/cloud_provider_firestore/bin/app:unittests",
    "//src/ledger/cloud_provider_firestore/bin/firestore:unittests",
    "//src/ledger/cloud_provider_firestore/bin/grpc:unittests",
    "//third_party/googletest:gtest_main",
  ]
}

group("tests") {
  testonly = true

  public_deps = [
    ":unittests",
    "//src/ledger/cloud_provider_firestore/bin/validation",
  ]
}
