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

fidl("fuchsia.ui.test.input") {
  sdk_category = "partner"
  sdk_area = "HCI"

  sources = [
    "media_buttons.fidl",
    "mouse.fidl",
    "overview.fidl",
    "registry.fidl",
    "text.fidl",
    "touch.fidl",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.input",
    "//sdk/fidl/fuchsia.input.report",
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.ui.input3",
    "//sdk/fidl/fuchsia.ui.pointer",
    "//zircon/vdso/zx",
  ]

  enable_hlcpp = true
}
