blob: f8f2dd5c8e38d28b17e2e8046439e95e7c7ae98f [file] [edit]
# 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.
import("//build/components.gni")
import("//build/fidl/fidl.gni")
import("//build/icu/icu_fuchsia_component.gni")
import("//build/icu/icu_fuchsia_package.gni")
import("//build/icu/icu_rustc_binary.gni")
import("//src/lib/dso/fuchsia_dso.gni")
_scene_manager = {
edition = "2024"
icu_deps = [ "//src/lib/icu_data/rust/icu_data" ]
deps = [
":scene_manager_structured_config",
"//sdk/fidl/fuchsia.accessibility:fuchsia.accessibility_rust",
"//sdk/fidl/fuchsia.accessibility.scene:fuchsia.accessibility.scene_rust",
"//sdk/fidl/fuchsia.element:fuchsia.element_rust",
"//sdk/fidl/fuchsia.factory:fuchsia.factory_rust",
"//sdk/fidl/fuchsia.input.injection:fuchsia.input.injection_rust",
"//sdk/fidl/fuchsia.inspect:fuchsia.inspect_rust",
"//sdk/fidl/fuchsia.io:fuchsia.io_rust",
"//sdk/fidl/fuchsia.lightsensor:fuchsia.lightsensor_rust",
"//sdk/fidl/fuchsia.recovery.policy:fuchsia.recovery.policy_rust",
"//sdk/fidl/fuchsia.recovery.ui:fuchsia.recovery.ui_rust",
"//sdk/fidl/fuchsia.session.scene:fuchsia.session.scene_rust",
"//sdk/fidl/fuchsia.settings:fuchsia.settings_rust",
"//sdk/fidl/fuchsia.tracing.provider:fuchsia.tracing.provider_rust",
"//sdk/fidl/fuchsia.ui.brightness:fuchsia.ui.brightness_rust",
"//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust",
"//sdk/fidl/fuchsia.ui.composition.internal:fuchsia.ui.composition.internal_rust",
"//sdk/fidl/fuchsia.ui.display.color:fuchsia.ui.display.color_rust",
"//sdk/fidl/fuchsia.ui.display.singleton:fuchsia.ui.display.singleton_rust",
"//sdk/fidl/fuchsia.ui.focus:fuchsia.ui.focus_rust",
"//sdk/fidl/fuchsia.ui.pointerinjector.configuration:fuchsia.ui.pointerinjector.configuration_rust",
"//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_rust",
"//sdk/lib/scheduler/rust",
"//sdk/rust/zx",
"//src/lib/diagnostics/inspect/runtime/rust",
"//src/lib/diagnostics/inspect/rust",
"//src/lib/fidl/rust/fidl",
"//src/lib/fuchsia",
"//src/lib/fuchsia-async",
"//src/lib/fuchsia-component",
"//src/lib/sorted_vec_map_rs",
"//src/lib/trace/rust:trace-provider",
"//src/ui/lib/focus_chain_provider:lib_with_includes",
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:futures",
"//third_party/rust_crates:log",
"//third_party/rust_crates:serde_json",
]
test_deps = [
"//src/lib/ui/fuchsia-scenic",
"//src/ui/lib/scene_management:scene_management_mocks",
"//third_party/rust_crates:assert_matches",
]
sources = [
"src/color_transform_manager.rs",
"src/factory_reset_countdown_server.rs",
"src/factory_reset_device_server.rs",
"src/input_device_registry_server.rs",
"src/input_pipeline.rs",
"src/light_sensor_server.rs",
"src/media_buttons_listener_registry_server.rs",
"src/top.rs",
]
}
icu_rustc_binary("bin") {
forward_variables_from(_scene_manager, "*")
output_name = "scene_manager"
with_unit_tests = true
sources += [ "src/entry.rs" ]
source_root = "src/entry.rs"
deps += [ "//src/lib/fuchsia-runtime" ]
icu_deps += [
"//src/ui/lib/input_pipeline",
"//src/ui/lib/scene_management",
]
}
fuchsia_rust_dso("dso") {
forward_variables_from(_scene_manager, "*")
output_name = "scene_manager"
with_unit_tests = false # :bin provides unit tests
sources += [ "src/entry_dso.rs" ]
source_root = "src/entry_dso.rs"
deps += icu_deps
deps += [
"//sdk/lib/driver/component/rust",
"//src/lib/dso/rust",
"//src/ui/lib/input_pipeline:dso",
"//src/ui/lib/scene_management:dso",
]
if (!defined(features)) {
features = []
}
features += [ "dso" ]
}
fuchsia_component_manifest("manifest") {
component_name = "scene_manager"
manifest = "meta/scene_manager.bin.cml"
}
fuchsia_component_manifest("manifest_dso") {
component_name = "scene_manager"
manifest = "meta/scene_manager.dso.cml"
}
icu_fuchsia_component("component") {
cm_label = ":manifest"
icu_deps = [
":bin",
"//src/lib/icu:icudtl",
]
}
icu_fuchsia_component("component_dso") {
cm_label = ":manifest_dso"
icu_deps = [
":dso",
"//src/lib/icu:icudtl",
]
}
# TODO(https://fxbug.dev/42057898): Remove test-only target when
# default config values are available.
group("scene_manager_component_for_test") {
deps = [
":component",
":config_for_test",
]
}
icu_fuchsia_package("scene_manager") {
validate_structured_config = false
icu_deps = [ ":component" ]
}
icu_fuchsia_package("scene_manager_dso") {
package_name = "scene_manager"
validate_structured_config = false
icu_deps = [ ":component_dso" ]
}
fuchsia_unittest_package("scene_manager_tests") {
deps = [ ":bin_test" ]
test_type = "system"
}
fuchsia_structured_config_rust_lib("scene_manager_structured_config") {
cm_label = ":manifest"
}
fuchsia_structured_config_values2("config_for_test") {
visibility = [ ":scene_manager_component_for_test" ]
cm_label = ":manifest"
output_component_name = "scene_manager_config"
values = {
idle_threshold_ms = 5000
supported_input_devices = [
"button",
"keyboard",
"lightsensor",
"mouse",
"touchscreen",
]
display_rotation = 270
display_pixel_density = "4.1668"
viewing_distance = "near"
suspend_enabled = false
attach_a11y_view = true
enable_merge_touch_events = false
}
}
group("tests") {
testonly = true
deps = [
":scene_manager_tests",
# TODO(https://fxbug.dev/489140485): Remove once we have a builder for
# that uses this
":dso",
]
}