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

if (is_host) {
  _deps = [
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:argh",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:once_cell",
    "//third_party/rust_crates:proc-macro2",
    "//third_party/rust_crates:regex",
    "//third_party/rust_crates:rustfix",
    "//third_party/rust_crates:serde",
    "//third_party/rust_crates:serde_json",
    "//third_party/rust_crates:syn",
  ]

  _sources = [
    "src/allow.rs",
    "src/api.rs",
    "src/bugspec.rs",
    "src/command_ext.rs",
    "src/fix.rs",
    "src/issues.rs",
    "src/lint.rs",
    "src/main.rs",
    "src/mock.rs",
    "src/owners.rs",
    "src/rollout.rs",
    "src/span.rs",
  ]

  rustc_binary("shush") {
    edition = "2021"
    deps = _deps
    sources = _sources
    rustenv = [ "RUST_SYSROOT=$out_rustc_prefix" ]
  }

  rustc_test("shush_test") {
    edition = "2021"
    deps = _deps
    sources = _sources
    source_root = "src/main.rs"

    test_deps = [ "//build/rust:prebuilt_toolchain_host_test_data" ]
    rustenv = [ "RUST_SYSROOT=$out_rustc_prefix" ]
  }

  copy("install") {
    sources = [ "$root_out_dir/shush" ]
    deps = [ ":shush" ]
    outputs = [ "$root_build_dir/host-tools/{{source_file_part}}" ]
  }

  group("tests") {
    testonly = true
    deps = [ ":shush_test" ]
  }
}
