From 4e31a9e20a2e56938cccb76b5519a7f6b5b95856 Mon Sep 17 00:00:00 2001 From: tychovrahe Date: Sun, 25 May 2025 18:33:27 +0200 Subject: [PATCH] fix(core/rust): make rust crate compilable without UI [no changelog] --- core/embed/rust/src/trezorhal/ble/mod.rs | 6 +++++- core/embed/rust/src/trezorhal/mod.rs | 8 +++++++- core/embed/rust/src/trezorhal/power_manager.rs | 2 ++ core/site_scons/tools.py | 1 - core/site_scons/ui/__init__.py | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/embed/rust/src/trezorhal/ble/mod.rs b/core/embed/rust/src/trezorhal/ble/mod.rs index dc1c6c98d0..774c279d36 100644 --- a/core/embed/rust/src/trezorhal/ble/mod.rs +++ b/core/embed/rust/src/trezorhal/ble/mod.rs @@ -1,7 +1,10 @@ #[cfg(feature = "micropython")] mod micropython; -use crate::{error::Error, ui::event::BLEEvent}; +#[cfg(feature = "ui")] +use crate::ui::event::BLEEvent; + +use crate::error::Error; use core::mem::size_of; use super::ffi; @@ -23,6 +26,7 @@ fn prefix_utf8_bytes(text: &str, max_len: usize) -> &[u8] { &text.as_bytes()[..i] } +#[cfg(feature = "ui")] pub fn ble_parse_event(event: ffi::ble_event_t) -> BLEEvent { match event.type_ { ffi::ble_event_type_t_BLE_CONNECTED => BLEEvent::Connected, diff --git a/core/embed/rust/src/trezorhal/mod.rs b/core/embed/rust/src/trezorhal/mod.rs index 03c5a9bfe9..f8549d0da6 100644 --- a/core/embed/rust/src/trezorhal/mod.rs +++ b/core/embed/rust/src/trezorhal/mod.rs @@ -18,7 +18,7 @@ pub mod button; #[cfg(feature = "touch")] pub mod touch; -#[cfg(feature = "hw_jpeg_decoder")] +#[cfg(all(feature = "ui", feature = "hw_jpeg_decoder"))] pub mod jpegdec; pub mod model; pub mod random; @@ -44,3 +44,9 @@ pub mod power_manager; #[cfg(any(feature = "bootloader", feature = "prodtest"))] pub mod layout_buf; + +#[cfg(feature = "nrf")] +pub mod irq; + +#[cfg(feature = "nrf")] +pub mod nrf; diff --git a/core/embed/rust/src/trezorhal/power_manager.rs b/core/embed/rust/src/trezorhal/power_manager.rs index 49ded0effa..8b8b0b8145 100644 --- a/core/embed/rust/src/trezorhal/power_manager.rs +++ b/core/embed/rust/src/trezorhal/power_manager.rs @@ -1,5 +1,6 @@ use super::ffi; +#[cfg(feature = "ui")] use crate::ui::event::PMEvent; pub enum ChargingState { @@ -8,6 +9,7 @@ pub enum ChargingState { Idle, } +#[cfg(feature = "ui")] pub fn pm_parse_event(event: ffi::pm_event_t) -> PMEvent { let mut pm_event = PMEvent::default(); diff --git a/core/site_scons/tools.py b/core/site_scons/tools.py index 529b5dad3f..d389c9d9d1 100644 --- a/core/site_scons/tools.py +++ b/core/site_scons/tools.py @@ -144,7 +144,6 @@ def add_rust_lib(*, env, build, profile, features, all_paths, build_dir): def cargo_build(): lib_features = [] lib_features.extend(features) - lib_features.append("ui") cargo_opts = [ f"--target={RUST_TARGET}", diff --git a/core/site_scons/ui/__init__.py b/core/site_scons/ui/__init__.py index df76005695..2f31c975bd 100644 --- a/core/site_scons/ui/__init__.py +++ b/core/site_scons/ui/__init__.py @@ -28,6 +28,7 @@ def init_ui( ): conf = models.get_model_ui_conf(model) get_ui_module(model, stage).init_ui(stage, conf, rust_features) + rust_features.append("ui") def get_ui_layout(model: str):