# Copyright 2020 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.

# DO NOT MANUALLY EDIT!
# Generated by //scripts/sdk/gn/generate.py.


import("../../build/fidl_library.gni")

fidl_library("fuchsia.ui.input") {
  library_name = "input"
  namespace = "fuchsia.ui"
  public_deps = [
    "../fuchsia.ui.input2",
    "../fuchsia.ui.input3",
    "../fuchsia.ui.views",
  ]
  sources = [
    "commands.fidl",
    "ime_service.fidl",
    "input_device_registry.fidl",
    "input_event_constants.fidl",
    "input_events.fidl",
    "input_reports.fidl",
    "pointer_capture.fidl",
    "text_editing.fidl",
    "text_input.fidl",
    "usages.fidl",
  ]
}

group("all"){
  deps = [
    ":fuchsia.ui.input",
  ]
}
