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

group("ui") {
  testonly = true
  deps = [
    "a11y",
    "bin",
    "examples",
    "input",
    "scenic",
    "tools",
    "wayland",
  ]
}

group("tests") {
  testonly = true

  deps = [
    "a11y:tests",
    "backlight:tests",
    "bin:tests",
    "examples:tests",
    "input:tests",
    "lib:tests",
    "light:tests",
    "scenic:tests",
    "testing:tests",
    "tests",
    "tools:tests",
    "wayland:tests",
  ]
}

fuchsia_component("ui_component") {
  component_name = "ui"
  manifest = "meta/ui.cml"
  deps = [ "//src/graphics/display/bin/coordinator-connector:shard-includes" ]
}

fuchsia_package("ui_package") {
  package_name = "ui"

  deps = [ ":ui_component" ]
}

fuchsia_component("ui_with_synthetic_device_support_component") {
  component_name = "ui"
  manifest = "meta/ui_with_synthetic_device_support.cml"
  deps = [
    # `display-coordinator-connector` lets components connect to the
    # `fuchsia.hardware.display.Coordinator` service, provided by the display
    # coordinator driver so that components can present contents to the display
    # hardware.
    "//src/graphics/display/bin/coordinator-connector:shard-includes",
    "//src/ui/testing/input_helper:input-helper-component",
  ]
}

fuchsia_package("ui_with_synthetic_device_support_package") {
  package_name = "ui"

  deps = [ ":ui_with_synthetic_device_support_component" ]
}
