# Copyright 2015 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/fidl/fidl.gni")

fidl("fuchsia.ui.input") {
  # TODO(fxbug.dev/35879): Remove lint exclusions by fixing known FIDL lint violations in this target
  excluded_checks = [
    "invalid-case-for-constant",
    "protocol-name-includes-service",
    "string-bounds-not-specified",
    "vector-bounds-not-specified",
  ]

  sdk_category = "partner"

  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",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.ui.input2",
    "//sdk/fidl/fuchsia.ui.input3",
    "//sdk/fidl/fuchsia.ui.views",
  ]
}
