# Copyright 2022 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_library.gni")

group("fidl_fuchsia_ui_focus_ext") {
  testonly = true
  deps = [ ":tests" ]
}

group("tests") {
  testonly = true
  deps = [ ":test-pkg" ]
}

rustc_library("lib") {
  name = "fidl_fuchsia_ui_focus_ext"
  with_unit_tests = true
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_rust",
    "//src/lib/ui/fidl_fuchsia_ui_views_ext:lib",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/zircon/rust:fuchsia-zircon",
  ]
  test_deps = [ ":test-helpers-lib" ]
  sources = [ "src/lib.rs" ]
}

rustc_library("test-helpers-lib") {
  name = "fidl_fuchsia_ui_focus_test_helpers"
  testonly = true
  edition = "2021"
  deps = [
    "//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_rust",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_rust",
    "//src/lib/ui/fuchsia-scenic",
  ]
  sources = [ "src/test_helpers.rs" ]
  source_root = "src/test_helpers.rs"
}

fuchsia_unittest_package("test-pkg") {
  package_name = "fidl_fuchsia_ui_focus_ext-test"
  deps = [ ":lib_test" ]
}
