| # Copyright 2025 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/rust/rustc_library.gni") |
| |
| rustc_library("starnix_kernel_runner") { |
| name = "starnix_kernel_runner" |
| edition = "2024" |
| version = "0.1.0" |
| with_unit_tests = true |
| |
| # TODO(https://fxbug.dev/42059075): Re-enable starnix in these environments. |
| exclude_toolchain_tags = [ |
| "asan", |
| "hwasan", |
| ] |
| |
| sources = [ |
| "src/component_runner.rs", |
| "src/container.rs", |
| "src/features.rs", |
| "src/lib.rs", |
| "src/mounts.rs", |
| "src/serve_protocols.rs", |
| ] |
| |
| deps = [ |
| "//sdk/fidl/fuchsia.boot:fuchsia.boot_rust", |
| "//sdk/fidl/fuchsia.component:fuchsia.component_rust", |
| "//sdk/fidl/fuchsia.component.runner:fuchsia.component.runner_rust", |
| "//sdk/fidl/fuchsia.element:fuchsia.element_rust", |
| "//sdk/fidl/fuchsia.feedback:fuchsia.feedback_rust", |
| "//sdk/fidl/fuchsia.io:fuchsia.io_rust", |
| "//sdk/fidl/fuchsia.mem:fuchsia.mem_rust", |
| "//sdk/fidl/fuchsia.memory.attribution:fuchsia.memory.attribution_rust", |
| "//sdk/fidl/fuchsia.posix:fuchsia.posix_rust", |
| "//sdk/fidl/fuchsia.process:fuchsia.process_rust", |
| "//sdk/fidl/fuchsia.starnix.binder:fuchsia.starnix.binder_rust", |
| "//sdk/fidl/fuchsia.starnix.container:fuchsia.starnix.container_rust", |
| "//sdk/fidl/fuchsia.sysinfo:fuchsia.sysinfo_rust", |
| "//sdk/fidl/fuchsia.time.external:fuchsia.time.external_rust", |
| "//sdk/fidl/fuchsia.ui.composition:fuchsia.ui.composition_rust", |
| "//sdk/fidl/fuchsia.ui.input3:fuchsia.ui.input3_rust", |
| "//sdk/fidl/fuchsia.ui.policy:fuchsia.ui.policy_rust", |
| "//sdk/fidl/fuchsia.ui.views:fuchsia.ui.views_rust", |
| "//sdk/rust/zx", |
| "//src/lib/diagnostics/inspect/rust", |
| "//src/lib/fdio/rust:fdio", |
| "//src/lib/fidl/rust/fidl", |
| "//src/lib/fuchsia-async", |
| "//src/lib/fuchsia-component", |
| "//src/lib/fuchsia-runtime", |
| "//src/lib/trace/rust:trace", |
| "//src/lib/ui/fuchsia-scenic", |
| "//src/performance/memory/attribution/server", |
| "//src/starnix/kernel:starnix_container_structured_config", |
| "//src/starnix/kernel/core", |
| "//src/starnix/kernel/syscall_loop:starnix_syscall_loop", |
| "//src/starnix/lib/bootreason", |
| "//src/starnix/lib/devicetree", |
| "//src/starnix/lib/features:starnix_features", |
| "//src/starnix/lib/starnix_logging", |
| "//src/starnix/lib/starnix_sync", |
| "//src/starnix/lib/starnix_task_command", |
| "//src/starnix/lib/starnix_types", |
| "//src/starnix/lib/starnix_uapi", |
| "//src/starnix/modules", |
| "//src/starnix/modules/android_usb", |
| "//src/starnix/modules/ashmem", |
| "//src/starnix/modules/boot", |
| "//src/starnix/modules/consent_sync", |
| "//src/starnix/modules/fastrpc", |
| "//src/starnix/modules/framebuffer", |
| "//src/starnix/modules/gpu", |
| "//src/starnix/modules/gralloc", |
| "//src/starnix/modules/hvdcp_opti:hvdcp_opti_module", |
| "//src/starnix/modules/input", |
| "//src/starnix/modules/kgsl", |
| "//src/starnix/modules/layeredfs", |
| "//src/starnix/modules/magma", |
| "//src/starnix/modules/nanohub", |
| "//src/starnix/modules/nmfs", |
| "//src/starnix/modules/overlayfs", |
| "//src/starnix/modules/perfetto_consumer", |
| "//src/starnix/modules/rtc", |
| "//src/starnix/modules/thermal", |
| "//src/starnix/modules/touch_power_policy", |
| "//src/starnix/modules/wakeup_test", |
| "//src/sys/lib/fuchsia-zbi", |
| "//src/sys/lib/runner", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:bstr", |
| "//third_party/rust_crates:futures", |
| "//third_party/rust_crates:rand", |
| "//third_party/rust_crates:serde", |
| ] |
| |
| test_deps = [ |
| "//src/lib/fuchsia", |
| "//third_party/rust_crates:assert_matches", |
| ] |
| |
| configs += [ "//src/starnix/build:kernel_library_config" ] |
| |
| # LTO OOMs out on RBE default workers, so use bigger workers. |
| if (is_lto_variant || optimize == "size_lto" || optimize == "size_thinlto") { |
| _concurrent_jobs = concurrent_jobs.link_highmem |
| configs += _concurrent_jobs.configs |
| forward_variables_from(_concurrent_jobs.vars, "*") |
| } |
| } |
| |
| fuchsia_unittest_package("starnix_kernel_runner-tests") { |
| deps = [ ":starnix_kernel_runner_test" ] |
| manifest = "meta/starnix_kernel_runner_tests.cml" |
| test_specs = { |
| log_settings = { |
| # Tests exercise failure cases, so ERROR logs are expected. |
| max_severity = "ERROR" |
| } |
| } |
| test_type = "starnix" |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ ":starnix_kernel_runner-tests" ] |
| } |