# 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")

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

fuchsia_package("lifecycle-example-cpp") {
  testonly = true
  deps = [ "cpp:manager-component" ]
  renameable_subpackages = [
    {
      name = "lifecycle"
      package = "cpp:lifecycle"
    },
    {
      package = "//examples/components/routing/cpp/echo_server"
    },
  ]
}

fuchsia_package("lifecycle-example-rust") {
  testonly = true
  deps = [ "rust:manager-component" ]
  renameable_subpackages = [
    {
      name = "lifecycle"
      package = "rust:lifecycle"
    },
    {
      package = "//examples/components/routing/rust/echo_server"
    },
  ]
}
