From 76ac137438fa9b4a5842d74161958ff198a9f12e Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Tue, 5 Mar 2024 08:15:34 +0100 Subject: [PATCH] Fix build against esp32-p4 - Bump esp-backtrace for esp32-p4 support, which removes the uart feature and delegates to esp-println - Added esp-println dependency - Add mapping for ESP32P4 and other risc-v esp-idf targets to the corresponding rust target triplet. Unfortunately there's no generic pattern like for xtensa, as can be seen on https://github.com/esp-rs/esp-idf-sys?tab=readme-ov-file#examples --- api/cpp/CMakeLists.txt | 1 + api/cpp/Cargo.toml | 3 ++- api/cpp/esp-idf/slint/CMakeLists.txt | 12 ++++++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/api/cpp/CMakeLists.txt b/api/cpp/CMakeLists.txt index c01892366fc..cc2d786d420 100644 --- a/api/cpp/CMakeLists.txt +++ b/api/cpp/CMakeLists.txt @@ -159,6 +159,7 @@ if (SLINT_BUILD_RUNTIME) if (SLINT_FEATURE_FREESTANDING) if (ESP_PLATFORM) list(APPEND features "esp-backtrace/${IDF_TARGET}") + list(APPEND features "esp-println/${IDF_TARGET}") endif() else (SLINT_FEATURE_FREESTANDING) list(APPEND features std) diff --git a/api/cpp/Cargo.toml b/api/cpp/Cargo.toml index a4661f2c76c..70804467b49 100644 --- a/api/cpp/Cargo.toml +++ b/api/cpp/Cargo.toml @@ -57,7 +57,8 @@ raw-window-handle = { version = "0.5", optional = true } # Enable image-rs' default features to make all image formats to C++ users image = { version = "0.24.0", optional = true } -esp-backtrace = { version = "0.9.0", features = ["panic-handler", "print-uart"], optional = true } +esp-backtrace = { version = "0.11.0", features = ["panic-handler", "println"], optional = true } +esp-println = { version = "0.9.0", default-features = false, features = ["uart"], optional = true } [build-dependencies] anyhow = "1.0" diff --git a/api/cpp/esp-idf/slint/CMakeLists.txt b/api/cpp/esp-idf/slint/CMakeLists.txt index 3d1fbaecfb3..aa7599620ce 100644 --- a/api/cpp/esp-idf/slint/CMakeLists.txt +++ b/api/cpp/esp-idf/slint/CMakeLists.txt @@ -9,9 +9,17 @@ idf_component_register( if (CONFIG_IDF_TARGET_ARCH_XTENSA) set(Rust_CARGO_TARGET "xtensa-${IDF_TARGET}-none-elf") -else(CONFIG_IDF_TARGET_ARCH_XTENSA) +elseif(CONFIG_IDF_TARGET_ARCH_RISCV) + if (CONFIG_IDF_TARGET_ESP32C6 OR CONFIG_IDF_TARGET_ESP32C5 OR CONFIG_IDF_TARGET_ESP32H2) + set(Rust_CARGO_TARGET "riscv32imac-esp-espidf") + elseif (CONFIG_IDF_TARGET_ESP32P4) + set(Rust_CARGO_TARGET "riscv32imafc-esp-espidf") + else () + set(Rust_CARGO_TARGET "riscv32imc-esp-espidf") + endif() +else() message(FATAL_ERROR "Architecture currently not supported") -endif(CONFIG_IDF_TARGET_ARCH_XTENSA) +endif() set(SLINT_FEATURE_FREESTANDING ON) set(SLINT_FEATURE_RENDERER_SOFTWARE ON)