# 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/rust/rustc_library.gni")

if (is_host) {
  rustc_library("config_client") {
    edition = "2021"
    with_unit_tests = true
    sources = [
      "src/cpp.rs",
      "src/fidl.rs",
      "src/lib.rs",
      "src/rust.rs",
    ]
    inputs = [
      "templates/cpp_elf.h.hbs",
      "templates/cpp_elf.cc.hbs",
      "templates/cpp_driver.cc.hbs",
      "templates/cpp_driver.h.hbs",
      "templates/typedef.h.hbs",
      "templates/vmo_parse.cc.hbs",
      "templates/helpers.cc.hbs",
    ]
    deps = [
      "//sdk/fidl/fuchsia.component.config:fuchsia.component.config-rustc",
      "//src/sys/lib/cm_rust",
      "//src/sys/lib/fidl_fuchsia_component_config_ext",
      "//third_party/rust_crates:handlebars",
      "//third_party/rust_crates:proc-macro2",
      "//third_party/rust_crates:quote",
      "//third_party/rust_crates:serde",
      "//third_party/rust_crates:serde_json",
      "//third_party/rust_crates:syn",
      "//third_party/rust_crates:thiserror",
    ]
  }
}

group("tests") {
  testonly = true
  deps = [ ":config_client_test($host_toolchain)" ]
}
