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

rustc_binary("bin") {
  edition = "2018"
  name = "routing_failed_echo_server"
  deps = [
    "//examples/components/routing/fidl:echo-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  sources = [ "src/main.rs" ]
}

fuchsia_component("echo-server") {
  deps = [ ":bin" ]
  manifest = "meta/echo_server.cml"
}

fuchsia_component("echo-server-bad") {
  deps = [ ":bin" ]
  manifest = "meta/echo_server_bad.cml"
}

group("echo_server") {
  deps = [
    ":echo-server",
    ":echo-server-bad",
  ]
}
