# 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")
import("//src/sys/build/components.gni")

rustc_binary("bin") {
  name = "netstack_intermediary"
  edition = "2018"
  deps = [
    "//sdk/fidl/fuchsia.hardware.ethernet:fuchsia.hardware.ethernet-rustc",
    "//sdk/fidl/fuchsia.hardware.ethertap:fuchsia.hardware.ethertap-rustc",
    "//sdk/fidl/fuchsia.netstack:fuchsia.netstack-rustc",
    "//src/connectivity/network/testing/netemul/lib/fidl:network-rustc",
    "//src/connectivity/network/testing/netemul/lib/fidl:sync-rustc",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/network/ethernet",
    "//src/lib/storage/fuchsia-vfs-watcher",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:structopt",
    "//third_party/rust_crates:thiserror",
  ]

  sources = [ "src/main.rs" ]

  configs -= [ "//build/config/rust:allow_unused_results" ]
}

fuchsia_component("netstack_intermediary") {
  component_name = "netstack-intermediary"
  manifest = "meta/netstack-intermediary.cmx"
  testonly = true
  deps = [ ":bin" ]
}
