# Copyright 2020 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_binary.gni")

rustc_binary("component_id_index") {
  name = "component_id_index"

  deps = [
    "//sdk/fidl/fuchsia.component.internal:fuchsia.component.internal_rust",
    "//src/lib/fidl/rust/fidl",
    "//src/sys/lib/component_id_index",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:serde_json5",
    "//third_party/rust_crates:structopt",
  ]

  test_deps = [
    "//src/sys/lib/moniker",
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:tempfile",
  ]

  with_unit_tests = true
  edition = "2021"

  sources = [ "src/main.rs" ]
}

install_host_tools("install") {
  deps = [ ":component_id_index" ]

  outputs = [ "component_id_index" ]
}

group("tests") {
  testonly = true

  deps = [ ":component_id_index_test($host_toolchain)" ]
}
