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

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

rustc_library("partitions_config") {
  edition = "2021"
  name = "assembly_partitions_config"
  version = "0.1.0"
  with_unit_tests = true
  deps = [
    "//src/lib/assembly/assembly_manifest",
    "//src/lib/assembly/util",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:camino",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:serde_json5",
    "//third_party/rust_crates:url",
  ]
  test_deps = [
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:tempfile",
  ]
  sources = [
    "src/lib.rs",
    "src/partition_image_mapper.rs",
    "src/partitions_config.rs",
  ]
}
