| # 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/assembly/bootfs_files_for_assembly.gni") |
| import("//build/components.gni") |
| import("//build/rust/rustc_binary.gni") |
| import("//build/rust/rustc_library.gni") |
| import("//src/bringup/bin/virtcon/virtcon_args.gni") |
| |
| # Mandatory portion of virtcon that's included in all products. |
| fuchsia_component("component") { |
| component_name = "virtual-console" |
| manifest = "meta/virtual-console.cml" |
| deps = [ ":bin" ] |
| } |
| |
| fuchsia_package("package") { |
| package_name = "virtual-console" |
| deps = [ |
| ":component", |
| ":font", |
| ] |
| } |
| |
| # The boot animation, which is added to all products, but the source path is |
| # controlled by product gni files. |
| # TODO(118048) Add Product Assembly feature to allow products to specify a path |
| # to the boot animation file to use. |
| bootfs_files_for_assembly("boot_animation") { |
| deps = [ ":boot_animation_resource" ] |
| } |
| |
| resource("boot_animation_resource") { |
| sources = [ virtcon_boot_animation_path ] |
| outputs = [ "data/boot-animation.riv" ] |
| visibility = [ ":*" ] |
| } |
| |
| group("tests") { |
| testonly = true |
| deps = [ ":virtual_console_tests" ] |
| } |
| |
| # Extra fonts added to bootfs by workstation |
| group("extra_fonts") { |
| deps = [ |
| ":bold_font", |
| ":bold_italic_font", |
| ":italic_font", |
| ] |
| } |
| |
| ######### |
| # |
| # Internal targets |
| # |
| # Set all targets below here to only be visible within this file. |
| visibility = [ ":*" ] |
| |
| rustc_library("lib") { |
| name = "virtual_console_lib" |
| edition = "2021" |
| with_unit_tests = true |
| sources = [ |
| "src/app.rs", |
| "src/args.rs", |
| "src/colors.rs", |
| "src/lib.rs", |
| "src/log.rs", |
| "src/session_manager.rs", |
| "src/terminal.rs", |
| "src/text_grid.rs", |
| "src/view.rs", |
| ] |
| deps = [ |
| "//sdk/fidl/fuchsia.boot:fuchsia.boot_rust", |
| "//sdk/fidl/fuchsia.hardware.display:fuchsia.hardware.display_rust", |
| "//sdk/fidl/fuchsia.hardware.power.statecontrol:fuchsia.hardware.power.statecontrol_rust", |
| "//sdk/fidl/fuchsia.hardware.pty:fuchsia.hardware.pty_rust", |
| "//sdk/fidl/fuchsia.virtualconsole:fuchsia.virtualconsole_rust", |
| "//src/graphics/lib/compute/rive-rs", |
| "//src/lib/fidl/rust/fidl", |
| "//src/lib/fuchsia-async", |
| "//src/lib/fuchsia-component", |
| "//src/lib/fuchsia-runtime", |
| "//src/lib/pty", |
| "//src/lib/trace/rust:trace", |
| "//src/lib/ui/carnelian", |
| "//src/lib/ui/terminal", |
| "//src/lib/zircon/rust:fuchsia-zircon", |
| "//third_party/alacritty/alacritty_terminal:term_model", |
| "//third_party/rust_crates:anyhow", |
| "//third_party/rust_crates:futures", |
| ] |
| } |
| |
| resource("font") { |
| sources = [ "//prebuilt/third_party/fonts/robotomono/RobotoMono-Regular.ttf" ] |
| outputs = [ "data/font.ttf" ] |
| } |
| |
| resource("bold_font") { |
| sources = [ "//prebuilt/third_party/fonts/robotomono/RobotoMono-Bold.ttf" ] |
| outputs = [ "data/bold-font.ttf" ] |
| } |
| |
| resource("italic_font") { |
| sources = [ "//prebuilt/third_party/fonts/robotomono/RobotoMono-Italic.ttf" ] |
| outputs = [ "data/italic-font.ttf" ] |
| } |
| |
| resource("bold_italic_font") { |
| sources = |
| [ "//prebuilt/third_party/fonts/robotomono/RobotoMono-BoldItalic.ttf" ] |
| outputs = [ "data/bold-italic-font.ttf" ] |
| } |
| |
| rustc_binary("bin") { |
| name = "virtual_console" |
| edition = "2021" |
| source_root = "src/main.rs" |
| sources = [ "src/main.rs" ] |
| deps = [ |
| ":lib", |
| "//sdk/fidl/fuchsia.boot:fuchsia.boot_rust", |
| "//src/lib/fuchsia-async", |
| "//src/lib/fuchsia-component", |
| "//src/lib/trace/rust:trace-provider", |
| "//src/lib/ui/carnelian", |
| "//src/sys/lib/stdout-to-debuglog/rust", |
| "//third_party/rust_crates:anyhow", |
| ] |
| configs += [ "//build/config/rust:bootfs" ] |
| } |
| |
| resource("font_test") { |
| sources = [ "data/test.ttf" ] |
| outputs = [ "data/font.ttf" ] |
| } |
| |
| resource("boot_animation_test") { |
| sources = [ "data/test.riv" ] |
| outputs = [ "data/boot-animation.riv" ] |
| } |
| |
| fuchsia_test_component("virtual_console_tests_component") { |
| deps = [ |
| ":boot_animation_test", |
| ":font_test", |
| ":lib_test", |
| "//src/bringup/bin/ptysvc:component", |
| ] |
| manifest = "meta/virtual-console-tests.cml" |
| } |
| |
| fuchsia_test_package("virtual_console_tests") { |
| test_components = [ ":virtual_console_tests_component" ] |
| } |