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

common_deps = [
  "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
  "//src/lib/fdio",
  "//src/lib/fidl/rust/fidl",
  "//src/lib/fuchsia",
  "//src/lib/fuchsia-async",
  "//src/lib/fuchsia-component",
  "//src/lib/fuchsia-fs",
  "//src/lib/fuchsia-runtime",
  "//src/lib/zircon/rust:fuchsia-zircon",
  "//third_party/rust_crates:anyhow",
]

rustc_binary("chns") {
  edition = "2021"
  deps = common_deps
  sources = [ "src/main.rs" ]
}

rustc_binary("chout") {
  edition = "2021"
  deps = common_deps
  sources = [ "src/main.rs" ]
}

rustc_binary("chexp") {
  edition = "2021"
  deps = common_deps
  sources = [ "src/main.rs" ]
}

group("chroot") {
  deps = [
    ":chexp",
    ":chns",
    ":chout",
  ]
}

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