# 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_binary.gni")

rustc_binary("virtio_net_test_util") {
  name = "virtio_net_test_util"
  edition = "2021"

  if (is_fuchsia) {
    deps = [
      "//sdk/fidl/fuchsia.hardware.network:fuchsia.hardware.network_rust",
      "//sdk/fidl/fuchsia.io:fuchsia.io_rust",
      "//src/connectivity/lib/network-device/rust",
      "//src/lib/fdio/rust:fdio",
      "//src/lib/fidl/rust/fidl",
      "//src/lib/fuchsia",
      "//src/lib/fuchsia-async",
      "//src/lib/fuchsia-fs",
      "//src/lib/network/fidl_fuchsia_net_ext",
      "//src/lib/zircon/rust:fuchsia-zircon",
      "//third_party/rust_crates:anyhow",
      "//third_party/rust_crates:futures",
      "//third_party/rust_crates:structopt",
    ]

    source_root = "src/fuchsia_main.rs"
    sources = [ "src/fuchsia_main.rs" ]
  } else if (is_linux) {
    deps = [ "//third_party/rust_crates:structopt" ]

    source_root = "src/linux_main.rs"
    sources = [ "src/linux_main.rs" ]
  }
}
