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

group("packages") {
  deps = [
    ":tiles-session",
    ":tiles-session-routing",
  ]
}

# TODO(fxbug.dev/88656): There doesn't need to be two separate components; smoosh them together.
fuchsia_package_with_single_component("tiles-session-routing") {
  manifest = "meta/tiles-session-routing.cml"
}

fuchsia_package_with_single_component("tiles-session") {
  manifest = "meta/tiles-session.cml"
  deps = [ ":bin" ]
}

# TODO(fxbug.dev/88656): add some tests.  Add these to //src/session/examples:tests
# group("tests") {}

rustc_binary("bin") {
  output_name = "tiles-session"
  with_unit_tests = true
  edition = "2021"

  deps = [
    "//sdk/fidl/fuchsia.component:fuchsia.component-rustc",
    "//sdk/fidl/fuchsia.element:fuchsia.element-rustc",
    "//sdk/fidl/fuchsia.session.scene:fuchsia.session.scene-rustc",
    "//sdk/fidl/fuchsia.ui.app:fuchsia.ui.app-rustc",
    "//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition-rustc",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views-rustc",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:futures",
  ]

  test_deps = []

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