# Copyright 2019 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/rust/rustc_library.gni")
import("//src/sys/build/components.gni")

rustc_library("pkgfs") {
  name = "pkgfs"
  with_unit_tests = true
  edition = "2018"

  deps = [
    "//garnet/lib/rust/files_async",
    "//garnet/lib/rust/io_util",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/sys/pkg/lib/fuchsia-hash",
    "//src/sys/pkg/lib/fuchsia-pkg",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:thiserror",
  ]

  test_deps = [
    "//sdk/fidl/fuchsia.pkg:fuchsia.pkg-rustc",
    "//src/lib/fuchsia-component",
    "//src/lib/storage/ramdevice_client",
    "//src/sys/pkg/lib/fuchsia-merkle",
    "//src/sys/pkg/lib/fuchsia-pkg-testing",
    "//src/sys/pkg/testing/blobfs-ramdisk",
    "//src/sys/pkg/testing/pkgfs-ramdisk",
    "//third_party/rust_crates:futures-util",
    "//third_party/rust_crates:maplit",
    "//third_party/rust_crates:matches",
    "//third_party/rust_crates:openat",
    "//third_party/rust_crates:tempfile",
    "//third_party/rust_crates:void",
  ]

  sources = [
    "src/control.rs",
    "src/install.rs",
    "src/lib.rs",
    "src/needs.rs",
    "src/package.rs",
    "src/packages.rs",
    "src/system.rs",
    "src/versions.rs",
  ]
}

fuchsia_component("pkgfs-lib-test") {
  testonly = true
  manifest = "meta/pkgfs-lib-test.cmx"
  deps = [ ":pkgfs_test" ]
}

fuchsia_test_package("pkgfs-tests") {
  test_components = [ ":pkgfs-lib-test" ]
  deps = [
    "//src/storage/bin/blobfs",
    "//src/sys/pkg/bin/pkgfs:pkgsvr",
    "//src/sys/pkg/bin/pm:pm_bin",
  ]
}

group("tests") {
  testonly = true
  public_deps = [
    ":pkgfs-tests",
    "//src/lib/storage/ramdevice_client:ramdisk-isolated-devmgr",
  ]
}
