# Copyright 2021 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")
import("//build/rust/rustc_library.gni")

rustc_binary("virtio_net_bin") {
  name = "virtio_net"
  edition = "2018"

  sources = [ "src/main.rs" ]

  deps = [
    "//sdk/fidl/fuchsia.hardware.ethernet:fuchsia.hardware.ethernet-rustc",
    "//sdk/fidl/fuchsia.net:fuchsia.net-rustc",
    "//sdk/fidl/fuchsia.net.interfaces:fuchsia.net.interfaces-rustc",
    "//sdk/fidl/fuchsia.netstack:fuchsia.netstack-rustc",
    "//sdk/fidl/fuchsia.virtualization.hardware:fuchsia.virtualization.hardware-rustc",
    "//src/lib/async-utils",
    "//src/lib/fidl/rust/fidl",
    "//third_party/rust_crates:libc",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-runtime",
    "//src/lib/syslog",
    "//src/lib/zerocopy",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//src/virtualization/lib/machina-virtio-device",
    "//src/virtualization/lib/virtio-device",
    "//third_party/rust_crates:crossbeam",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:parking_lot",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:matches",
    "//src/lib/network/fidl_fuchsia_net_interfaces_ext",
    "//src/lib/network/ethernet",
  ]
}

fuchsia_package_with_single_component("virtio_net") {
  manifest = "../../meta/virtio_net.cmx"
  deps = [ ":virtio_net_bin" ]
}
