# Copyright 2022 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/components.gni")
import("//build/rust/rustc_binary.gni")

rustc_binary("bin") {
  name = "process_resolver"
  with_unit_tests = true
  edition = "2024"

  configs += [ "//build/config/rust:bootfs" ]

  deps = [
    "//sdk/fidl/fuchsia.io:fuchsia.io_rust",
    "//sdk/fidl/fuchsia.ldsvc:fuchsia.ldsvc_rust",
    "//sdk/fidl/fuchsia.pkg:fuchsia.pkg_rust",
    "//sdk/fidl/fuchsia.process:fuchsia.process_rust",
    "//sdk/rust/zx",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-fs",
    "//src/lib/fuchsia-url",
    "//src/sys/lib/library_loader",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:log",
  ]
  test_deps = [ "//src/lib/fuchsia-async" ]

  sources = [
    "src/main.rs",
    "src/resolve/mod.rs",
    "src/resolve/serve.rs",
  ]
}

fuchsia_component("component") {
  component_name = "process_resolver"
  manifest = "meta/process_resolver.cml"
  deps = [ ":bin" ]
}

fuchsia_package("process-resolver") {
  visibility = [
    ":*",
    "//bundles/assembly/*",
  ]
  deps = [ ":component" ]
}

fuchsia_unittest_package("process-resolver-unittests") {
  deps = [ ":bin_test" ]
}

group("tests") {
  testonly = true
  deps = [ ":process-resolver-unittests" ]
}
