# 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/host.gni")
import("//build/rust/rustc_binary.gni")
import("//build/sdk/sdk_host_tool.gni")

if (is_host) {
  rustc_binary("bin") {
    name = "fvdl"
    edition = "2018"

    with_unit_tests = true
    test_environments = [ host_env ]

    deps = [
      "//src/developer/ffx/plugins/emulator:ffx_emulator",
      "//src/developer/ffx/plugins/emulator:ffx_emulator_args",
      "//third_party/rust_crates:anyhow",
      "//third_party/rust_crates:argh",
    ]
    source_root = "src/main.rs"
    sources = [ "src/main.rs" ]
  }

  sdk_host_tool("fvdl_sdk") {
    category = "partner"
    output_name = "fvdl"
    deps = [ ":bin" ]
  }

  install_host_tools("host") {
    deps = [ ":bin" ]
    outputs = [ "fvdl" ]
  }
}

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