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

package("a11y_manager") {
  deps = [
    ":bin",
  ]

  binaries = [
    {
      name = "a11y_manager"
    },
  ]

  meta = [
    {
      path = rebase_path("meta/a11y_manager.cmx")
      dest = "a11y_manager.cmx"
    },
  ]
}

executable("bin") {
  output_name = "a11y_manager"

  sources = [
    "main.cc",
  ]

  deps = [
    ":lib",
    "//garnet/public/lib/syslog/cpp",
    "//sdk/lib/sys/cpp",
    "//zircon/public/lib/async-loop-cpp",
    "//zircon/public/lib/trace-provider-with-fdio",
  ]

  include_dirs = [ "//third_party/glm" ]
}

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

  public_deps = [
    "//sdk/fidl/fuchsia.accessibility",
    "//sdk/fidl/fuchsia.accessibility.semantics",
    "//sdk/fidl/fuchsia.math",
    "//src/ui/a11y/lib/screen_reader",
    "//src/ui/a11y/lib/semantics",
    "//src/ui/a11y/lib/settings",
  ]

  deps = [
    "//garnet/lib/ui/gfx",
    "//garnet/public/lib/fsl",
    "//garnet/public/lib/syslog/cpp",
    "//sdk/fidl/fuchsia.ui.gfx",
    "//sdk/fidl/fuchsia.ui.input",
    "//sdk/fidl/fuchsia.ui.views",
    "//sdk/lib/fidl/cpp",
    "//sdk/lib/sys/cpp",
    "//src/lib/fxl",
  ]
}
