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

source_set("hid-input-report") {
  sources = [
    "axis.cc",
    "consumer_control.cc",
    "device.cc",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "touch.cc",
  ]
  public_deps = [
    "//sdk/fidl/fuchsia.input:fuchsia.input_hlcpp",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_cpp",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_hlcpp",
    "//src/ui/input/lib/hid",
    "//src/ui/input/lib/hid-parser",
    "//zircon/system/ulib/fbl",
  ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]

  # TODO(https://fxbug.dev/42176699): This target uses mutable tables which are deprecated,
  # rather than builders.
  configs += [ "//build/cpp:fidl-wire-deprecated-mutable-tables" ]
}

test("lib-hid-input-report-test") {
  sources = [
    "axis.cc",
    "consumer_control.cc",
    "device.cc",
    "keyboard.cc",
    "mouse.cc",
    "sensor.cc",
    "test/consumer-control-test.cc",
    "test/keyboard-test.cc",
    "test/mouse-test.cc",
    "test/sensor-test.cc",
    "test/touch-test.cc",
    "touch.cc",
  ]

  deps = [
    "//sdk/fidl/fuchsia.input:fuchsia.input_hlcpp",
    "//sdk/fidl/fuchsia.input.report:fuchsia.input.report_cpp",
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_hlcpp",
    "//src/lib/ddk",
    "//src/lib/ddk:ddk-metadata-headers",
    "//src/ui/input/lib/hid",
    "//src/ui/input/lib/hid-parser",
    "//zircon/system/ulib/fbl",
    "//zircon/system/ulib/zxtest",
  ]

  # TODO(https://fxbug.dev/42136089): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]

  # TODO(https://fxbug.dev/42176699): This target uses mutable tables which are deprecated,
  # rather than builders.
  configs += [ "//build/cpp:fidl-wire-deprecated-mutable-tables" ]
}

fuchsia_unittest_package("test") {
  package_name = "lib-hid-input-report-test"
  deps = [ ":lib-hid-input-report-test" ]
}
