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

group("components-routing-example") {
  testonly = true
  deps = [
    ":components-routing-example-cpp",
    ":components-routing-example-rust",
  ]
}

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

fuchsia_package("components-routing-example-rust") {
  deps = [
    ":echo_realm",
    "rust/echo_client:echo_client_component",
    "rust/echo_server:echo_server_component",
  ]
}

fuchsia_package("components-routing-example-cpp") {
  deps = [
    ":echo_realm",
    "cpp/echo_client:echo_client_component",
    "cpp/echo_server:echo_server_component",
  ]
}

group("tests") {
  testonly = true
  deps = [
    "integration_tests/cpp:echo_integration_test_cpp",
    "integration_tests/rust:echo_integration_test_rust",
  ]
}
