blob: 1dee9ac6048a1bd875a11442bc4fe876f55ee20a [file] [log] [blame]
# 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")
import("//src/sys/core/build/core_shard.gni")
import("build_args.gni")
group("ui") {
testonly = true
deps = [
"a11y",
"bin",
"examples",
"input",
"scenic",
"tools",
"wayland",
]
}
group("tests") {
testonly = true
deps = [
"a11y:tests",
"backlight:tests",
"benchmarks",
"bin:tests",
"examples:tests",
"input:tests",
"lib:tests",
"light:tests",
"scenic:tests",
"tests",
"tools:tests",
"wayland:tests",
]
}
core_shard("ui_core_shard") {
if (use_scene_manager_as_scene_owner) {
shard_file = "meta/ui.core_shard.cml"
} else {
shard_file = "meta/ui_with_root_presenter.core_shard.cml"
}
}
core_shard("ui_minimal_core_shard") {
if (use_scene_manager_as_scene_owner) {
shard_file = "meta/ui_minimal.core_shard.cml"
} else {
shard_file = "meta/ui_with_root_presenter.core_shard.cml"
}
}
core_shard("ui_with_root_presenter_core_shard") {
shard_file = "meta/ui_with_root_presenter.core_shard.cml"
}
# TODO(b/215402056): Include Scenic for Root Presenter until Input Pipeline
# supports required FIDL services like FactoryResetCountdown. Otherwise
# switch to ui_headless.core_shard.cml
core_shard("ui_headless_core_shard") {
shard_file = "meta/ui_with_root_presenter.core_shard.cml"
#shard_file = "meta/ui_headless.core_shard.cml"
}
fuchsia_component("ui_component") {
if (use_scene_manager_as_scene_owner) {
component_name = "ui"
manifest = "meta/ui.cml"
} else {
component_name = "ui_with_root_presenter"
manifest = "meta/ui_with_root_presenter.cml"
}
}
fuchsia_component("ui_minimal_component") {
if (use_scene_manager_as_scene_owner) {
component_name = "ui_minimal"
manifest = "meta/ui_minimal.cml"
} else {
component_name = "ui_with_root_presenter"
manifest = "meta/ui_with_root_presenter.cml"
}
}
fuchsia_component("ui_with_root_presenter_component") {
component_name = "ui_with_root_presenter"
manifest = "meta/ui_with_root_presenter.cml"
}
# TODO(b/215402056): Include Scenic for Root Presenter until Input Pipeline
# supports required FIDL services like FactoryResetCountdown. Otherwise
# switch to ui_headless.cml
fuchsia_component("ui_headless_component") {
component_name = "ui_with_root_presenter"
#component_name = "ui_headless"
manifest = "meta/ui_with_root_presenter.cml"
#manifest = "meta/ui_headless.cml"
}
fuchsia_package("ui_package") {
package_name = "ui"
deps = [ ":ui_component" ]
}
fuchsia_package("ui_minimal_package") {
package_name = "ui"
deps = [ ":ui_minimal_component" ]
}
fuchsia_package("ui_with_root_presenter_package") {
package_name = "ui"
deps = [ ":ui_with_root_presenter_component" ]
}
fuchsia_package("ui_headless_package") {
package_name = "ui"
deps = [ ":ui_headless_component" ]
}
group("ui_packages_base") {
deps = [
"a11y",
"bin/text:text_manager",
"scenic",
]
}
group("ui_packages") {
deps = [
":ui_package",
":ui_packages_base",
]
if (use_scene_manager_as_scene_owner) {
deps += [
"bin/root_presenter:virtual_keyboard_manager",
"bin/scene_manager",
# TODO(fxbug.dev/104239): Configure presence via build flag.
"bin/shortcut",
]
} else {
deps += [
"bin/input-pipeline:pkg",
"bin/root_presenter",
"bin/text:text_manager",
]
}
}
group("ui_minimal_packages") {
deps = [
":ui_minimal_package",
":ui_packages_base",
]
if (use_scene_manager_as_scene_owner) {
deps += [
"bin/root_presenter:virtual_keyboard_manager",
"bin/scene_manager",
]
} else {
deps += [
"bin/input-pipeline:pkg",
"bin/root_presenter",
]
}
}
group("ui_with_root_presenter_packages") {
deps = [
":ui_packages_base",
":ui_with_root_presenter_package",
"bin/input-pipeline:pkg",
"bin/root_presenter",
"bin/text:text_manager",
"//src/graphics/bundles:vulkan",
]
}
group("ui_headless_packages") {
deps = [
":ui_headless_package",
# TODO(b/215402056): Include Scenic for Root Presenter until Input Pipeline
# supports required FIDL services like FactoryResetCountdown. Otherwise
# remove and replace with a headless-specific list.
":ui_packages_base",
"bin/input-pipeline:pkg",
"bin/root_presenter",
"//src/graphics/bundles:vulkan",
]
}
# Runtime_root_presenter is the set of package dependencies typically desired
# for the construction of a product that includes UI (Scenic, A11y) and root
# presenter (as opposed to scene manager).
group("runtime_with_root_presenter") {
deps = [ ":ui_with_root_presenter_packages" ]
}
# runtime_headless is the set of package dependencies desired for the construction
# of any product that includes headless UI (button input and a11y features only).
group("runtime_headless") {
deps = [ ":ui_headless_packages" ]
}