# Copyright 2020 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")
import("//build/rust/rustc_test.gni")
import("//build/testing/test_spec.gni")

rustc_library("lib") {
  name = "fastboot"
  edition = "2018"
  with_unit_tests = true

  deps = [
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:log",
    "//third_party/rust_crates:thiserror",
  ]
  non_rust_deps = [ "//third_party/boringssl" ]

  sources = [
    "src/command.rs",
    "src/lib.rs",
    "src/reply.rs",
  ]
}

group("fastboot") {
  deps = [
    ":lib",

    # This target copies the prebuilt fastboot into the build directory - as if
    # it were a normally built tool - and defines metadata depended upon by the
    # flashing workflow. When this fastboot implementation is ready, flashing
    # logic should be replaced by the new tool - and this depedency may safely
    # be removed.
    "//build/images:fastboot",
  ]
}

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