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

rustc_library("input_pipeline") {
  with_unit_tests = true
  edition = "2021"

  deps = [
    "//sdk/fidl/fuchsia.input:fuchsia.input-rustc",
    "//sdk/fidl/fuchsia.input.injection:fuchsia.input.injection-rustc",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report-rustc",
    "//sdk/fidl/fuchsia.io:fuchsia.io-rustc",
    "//sdk/fidl/fuchsia.media:fuchsia.media-rustc",
    "//sdk/fidl/fuchsia.media.sounds:fuchsia.media.sounds-rustc",
    "//sdk/fidl/fuchsia.recovery:fuchsia.recovery-rustc",
    "//sdk/fidl/fuchsia.recovery.policy:fuchsia.recovery.policy-rustc",
    "//sdk/fidl/fuchsia.recovery.ui:fuchsia.recovery.ui-rustc",
    "//sdk/fidl/fuchsia.settings:fuchsia.settings-rustc",
    "//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus-rustc",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input-rustc",
    "//sdk/fidl/fuchsia.ui.input.config:fuchsia.ui.input.config-rustc",
    "//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3-rustc",
    "//sdk/fidl/fuchsia.ui.keyboard.focus:fuchsia.ui.keyboard.focus-rustc",
    "//sdk/fidl/fuchsia.ui.pointerinjector:fuchsia.ui.pointerinjector-rustc",
    "//sdk/fidl/fuchsia.ui.pointerinjector.configuration:fuchsia.ui.pointerinjector.configuration-rustc",
    "//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy-rustc",
    "//sdk/fidl/fuchsia.ui.scenic:fuchsia.ui.scenic-rustc",
    "//sdk/fidl/fuchsia.ui.shortcut:fuchsia.ui.shortcut-rustc",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views-rustc",
    "//src/lib/async-utils",
    "//src/lib/diagnostics/inspect/runtime/rust",
    "//src/lib/diagnostics/inspect/rust",
    "//src/lib/fdio/rust:fdio",
    "//src/lib/fidl/rust/fidl",
    "//src/lib/fuchsia",
    "//src/lib/fuchsia-async",
    "//src/lib/fuchsia-component",
    "//src/lib/fuchsia-fs",
    "//src/lib/fuchsia-runtime",
    "//src/lib/icu_data/rust/icu_data",
    "//src/lib/storage/fuchsia-vfs-watcher",
    "//src/lib/storage/vfs/rust:vfs",
    "//src/lib/syslog/rust:syslog",
    "//src/lib/trace/rust:trace",
    "//src/lib/ui/fuchsia-scenic",
    "//src/lib/ui/keymaps",
    "//src/lib/zircon/rust:fuchsia-zircon",
    "//third_party/rust_crates:anyhow",
    "//third_party/rust_crates:assert_matches",
    "//third_party/rust_crates:async-trait",
    "//third_party/rust_crates:futures",
    "//third_party/rust_crates:itertools",
    "//third_party/rust_crates:lazy_static",
    "//third_party/rust_crates:maplit",
    "//third_party/rust_crates:pin-utils",
    "//third_party/rust_crates:rand",
    "//third_party/rust_crates:rust_icu_common",
    "//third_party/rust_crates:rust_icu_sys",
    "//third_party/rust_crates:rust_icu_unorm2",
    "//third_party/rust_crates:thiserror",
    "//third_party/rust_crates:tracing",
  ]

  test_deps = [
    "//src/intl:icudtl",
    "//src/lib/test_util",
    "//third_party/rust_crates:pretty_assertions",
    "//third_party/rust_crates:test-case",
  ]

  sources = [
    "src/autorepeater.rs",
    "src/click_drag_handler.rs",
    "src/consumer_controls_binding.rs",
    "src/dead_keys_handler.rs",
    "src/display_ownership.rs",
    "src/factory_reset_handler.rs",
    "src/fake_input_device_binding.rs",
    "src/fake_input_handler.rs",
    "src/focus_listener.rs",
    "src/gestures/gesture_arena.rs",
    "src/gestures/mod.rs",
    "src/ime_handler.rs",
    "src/immersive_mode_shortcut_handler.rs",
    "src/input_device.rs",
    "src/input_handler.rs",
    "src/input_pipeline.rs",
    "src/inspect_handler.rs",
    "src/keyboard_binding.rs",
    "src/keymap_handler.rs",
    "src/lib.rs",
    "src/media_buttons_handler.rs",
    "src/modifier_handler.rs",
    "src/mouse_binding.rs",
    "src/mouse_config.rs",
    "src/mouse_injector_handler.rs",
    "src/pointer_motion_display_scale_handler.rs",
    "src/pointer_motion_sensor_scale_handler.rs",
    "src/shortcut_handler.rs",
    "src/testing_utilities.rs",
    "src/text_settings_handler.rs",
    "src/touch_binding.rs",
    "src/touch_injector_handler.rs",
    "src/utils.rs",
  ]
}

fuchsia_unittest_package("input_pipeline_lib_tests") {
  deps = [ ":input_pipeline_test" ]
  test_specs = {
    log_settings = {
      max_severity = "ERROR"
    }
  }
}

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