# Copyright 2018 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")

source_set("input") {
  sources = [
    "device_state.cc",
    "device_state.h",
    "input_device_impl.cc",
    "input_device_impl.h",
  ]

  public_deps = [
    ":gesture",
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/fit",
    "//zircon/system/ulib/hid",
  ]

  deps = [
    "//src/lib/fxl",
    "//src/lib/ui/base_view",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
  ]

  # TODO(fxb/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

source_set("gesture") {
  sources = [
    "gesture.cc",
    "gesture.h",
    "gesture_detector.cc",
    "gesture_detector.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.math",
    "//sdk/fidl/fuchsia.ui.input",
    "//src/lib/fxl",
    "//src/ui/lib/glm_workaround",
  ]

  deps = [ "//sdk/lib/syslog/cpp" ]

  # TODO(fxb/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]
}

executable("gesture_tests") {
  testonly = true

  sources = [
    "gesture_detector_tests.cc",
    "gesture_tests.cc",
  ]

  deps = [
    ":gesture",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fxl/test:gtest_main",
    "//third_party/googletest:gtest",
  ]

  # TODO(fxb/58162): delete the below and fix compiler warnings
  configs += [ "//build/config:Wno-conversion" ]

  # TODO(fxb/62979): fix stack-use-after-return and delete
  deps += [ "//build/config/sanitizers:suppress-asan-stack-use-after-return" ]
}

fuchsia_unittest_package("input_unit_tests") {
  deps = [ ":gesture_tests" ]
}

group("tests") {
  testonly = true
  deps = [ ":input_unit_tests" ]
}
