# 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/package.gni")
import("//build/package/component.gni")

fuchsia_component("echo_server") {
  manifest = rebase_path("meta/echo_server.cml")
  deps = [
    "//src/sys/examples/topology/echo_server",
  ]
  binary = "echo_server"
}

fuchsia_component("echo_client") {
  manifest = rebase_path("meta/echo_client.cml")
  deps = [
    "//src/sys/examples/topology/echo_client",
  ]
  binary = "echo_client"
}

fuchsia_component("echo_realm") {
  manifest = rebase_path("meta/echo_realm.cml")
}

package("topology_example") {
  components = [
    ":echo_server",
    ":echo_client",
    ":echo_realm",
  ]
}
