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

group("injector") {
  public_deps = [
    ":injector_config_setup",
    ":lib",
  ]
}

source_set("lib") {
  sources = [
    "injector.cc",
    "injector.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.ui.input:fuchsia.ui.input_hlcpp",
    "//sdk/fidl/fuchsia.ui.pointerinjector:fuchsia.ui.pointerinjector_hlcpp",
    "//sdk/fidl/fuchsia.ui.pointerinjector.configuration:fuchsia.ui.pointerinjector.configuration_hlcpp",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_hlcpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/ui/scenic/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/inspect",
  ]

  deps = [
    ":injector_config_setup",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//src/lib/fostr/fidl/fuchsia.input.report",
    "//src/lib/fostr/fidl/fuchsia.ui.input",
    "//src/lib/fxl",
    "//zircon/system/ulib/trace",
  ]
}

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

  deps = [
    "//sdk/fidl/fuchsia.ui.pointerinjector.configuration:fuchsia.ui.pointerinjector.configuration_hlcpp",
    "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_hlcpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
  ]
}
