| # 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", |
| ] |
| } |