# Copyright 2019 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("blackout-host") {
    edition = "2021"
    with_unit_tests = true
    deps = [
      "//src/developer/ffx/lib/isolate:lib",
      "//src/lib/fidl/rust/fidl",
      "//src/lib/fuchsia-async",
      "//third_party/rust_crates:anyhow",
      "//third_party/rust_crates:async-trait",
      "//third_party/rust_crates:rand",
      "//third_party/rust_crates:serde",
      "//third_party/rust_crates:serde_json",
      "//third_party/rust_crates:thiserror",
    ]

    sources = [
      "src/integration.rs",
      "src/lib.rs",
      "src/steps.rs",
    ]
  }
}

group("tests") {
  testonly = true
  public_deps = [ ":blackout-host_test($host_toolchain)" ]
}
