mirror of
https://github.com/edera-dev/sprout.git
synced 2026-11-04 16:32:20 +00:00
* feat(menu): add a graphical boot menu Adds the graphical menu style, selected with menu-style = "graphical" or --menu-style=graphical. It draws to the graphics output with the existing framebuffer, using a built-in 8x8 font, and takes input from the keyboard and from relative or absolute pointers. The Sprout logo is drawn in the bottom right corner. If there is no graphics output, the simple menu is used, which still falls back to the basic menu. The logo is converted from assets/logo-small.png to raw pixels by the build crate, which adds the png crate as a build-time dependency only. The default menu style is still simple. Pointer input is untested, as OVMF has no mouse driver. * fix(build): only build the logo conversion on the host CI builds the whole workspace for the UEFI target, which also builds the build crate for UEFI. The png dependency pulls in simd-adler32, which crashes LLVM on that target. The logo conversion only runs in build scripts on the host, so png and the conversion are now left out when targeting UEFI.
87 lines
1.6 KiB
TOML
87 lines
1.6 KiB
TOML
[workspace]
|
|
members = [
|
|
"crates/boot",
|
|
"crates/build",
|
|
"crates/config",
|
|
"crates/eficore",
|
|
"crates/bls",
|
|
"crates/parsing",
|
|
]
|
|
resolver = "3"
|
|
|
|
[workspace.package]
|
|
license = "Apache-2.0"
|
|
version = "0.0.30"
|
|
homepage = "https://sprout.edera.dev"
|
|
repository = "https://github.com/edera-dev/sprout"
|
|
edition = "2024"
|
|
|
|
[workspace.dependencies]
|
|
bitflags = "2.13.2"
|
|
log = "0.4.34"
|
|
png = "0.18.1"
|
|
spin = "0.12.3"
|
|
uefi-raw = "0.17.0"
|
|
|
|
[workspace.dependencies.anyhow]
|
|
version = "1.0.104"
|
|
default-features = false
|
|
|
|
[workspace.dependencies.hex]
|
|
version = "0.4.3"
|
|
default-features = false
|
|
features = ["alloc"]
|
|
|
|
[workspace.dependencies.jaarg]
|
|
version = "0.2.2"
|
|
default-features = false
|
|
features = ["alloc"]
|
|
|
|
[workspace.dependencies.serde]
|
|
version = "1.0.229"
|
|
default-features = false
|
|
features = ["alloc", "derive"]
|
|
|
|
[workspace.dependencies.serde_ignored]
|
|
version = "0.1.14"
|
|
default-features = false
|
|
|
|
[workspace.dependencies.sha2]
|
|
version = "0.11.0"
|
|
default-features = false
|
|
|
|
[workspace.dependencies.shlex]
|
|
version = "2.0.1"
|
|
default-features = false
|
|
|
|
[workspace.dependencies.toml]
|
|
version = "1.1.6"
|
|
default-features = false
|
|
features = ["serde", "parse"]
|
|
|
|
[workspace.dependencies.uefi]
|
|
version = "0.41.0"
|
|
default-features = false
|
|
features = ["alloc", "global_allocator", "panic_handler"]
|
|
|
|
# Common build profiles
|
|
# NOTE: We have to compile everything for opt-level = 2 due to optimization passes
|
|
# which don't handle the UEFI target properly.
|
|
[profile.dev]
|
|
opt-level = 2
|
|
|
|
[profile.release]
|
|
lto = "thin"
|
|
strip = "symbols"
|
|
|
|
[profile.release-debuginfo]
|
|
inherits = "release"
|
|
strip = "none"
|
|
debug = 1
|
|
|
|
[profile.dev-fast]
|
|
inherits = "dev"
|
|
strip = "debuginfo"
|
|
debug = 0
|
|
opt-level = 2
|