# Copyright 2021 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/host.gni")
import("//build/rust/rustc_library.gni")
import("//build/zircon/tools.gni")

assert(is_host, "Assembly libraries are host-only")

rustc_library("blobfs") {
  edition = "2021"
  name = "assembly_blobfs"
  version = "0.1.0"
  with_unit_tests = true

  sources = [
    "src/blobfs.rs",
    "src/lib.rs",
    "src/manifest.rs",
  ]

  deps = [
    "//src/lib/assembly/tool",
    "//src/lib/assembly/util",
    "//src/lib/utf8_path",
    "//src/sys/pkg/lib/fuchsia-hash",
    "//src/sys/pkg/lib/fuchsia-merkle",
    "//src/sys/pkg/lib/fuchsia-pkg",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:camino",
    "//third_party/rust_crates:pathdiff",
    "//third_party/rust_crates:serde",
  ]

  test_deps = [
    "//src/lib/assembly/util",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:tempfile",
  ]
}
