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

executable("bin") {
  testonly = true
  output_name = "fake_a11y_manager"

  sources = [ "main.cc" ]

  deps = [
    ":lib",
    "//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_hlcpp",
    "//sdk/lib/sys/cpp",
    "//sdk/lib/syslog/cpp",
    "//zircon/system/ulib/async-loop:async-loop-cpp",
    "//zircon/system/ulib/async-loop:async-loop-default",
  ]
}

source_set("lib") {
  testonly = true
  sources = [
    "fake_a11y_manager.cc",
    "fake_a11y_manager.h",
  ]

  public_deps = [
    "//sdk/fidl/fuchsia.accessibility:fuchsia.accessibility_hlcpp",
    "//sdk/fidl/fuchsia.accessibility.semantics:fuchsia.accessibility.semantics_hlcpp",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/syslog/cpp",
    "//src/ui/a11y/lib/magnifier",
    "//src/ui/a11y/lib/view",
    "//src/ui/a11y/testing/fidl:test.accessibility_hlcpp",
  ]
}

fuchsia_component("fake-a11y-manager") {
  testonly = true
  component_name = "fake-a11y-manager"
  manifest = "meta/fake_a11y_manager.cml"
  deps = [ ":bin" ]
}
