# 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 = "2018"

  deps = [
    "//garnet/lib/rust/io_util",
    "//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.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-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/gfx_touch_handler.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" ]
}
