# 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") {
  testonly = true
  deps = [
    ":lifecycle-example-cpp",
    ":lifecycle-example-rust",
    "cpp",
    "rust",
  ]
}

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

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