diff --git a/internal/backends/selector/Cargo.toml b/internal/backends/selector/Cargo.toml index 4d18b0eee..dec6e3509 100644 --- a/internal/backends/selector/Cargo.toml +++ b/internal/backends/selector/Cargo.toml @@ -33,13 +33,14 @@ accessibility = ["i-slint-backend-winit?/accessibility"] default = [] [dependencies] +cfg-if = "1" i-slint-core = { workspace = true } + +[target.'cfg(not(target_os = "android"))'.dependencies] i-slint-backend-winit = { workspace = true, features = ["default"], optional = true } i-slint-backend-qt = { workspace = true, features = ["default"], optional = true } i-slint-backend-linuxkms = { workspace = true, features = ["default"], optional = true } i-slint-renderer-skia = { workspace = true, optional = true } -cfg-if = "1" - [build-dependencies] i-slint-common = { workspace = true } diff --git a/internal/backends/selector/lib.rs b/internal/backends/selector/lib.rs index b9232749a..224085fd6 100644 --- a/internal/backends/selector/lib.rs +++ b/internal/backends/selector/lib.rs @@ -11,6 +11,7 @@ )), no_std )] +#![allow(unused)] extern crate alloc; @@ -18,23 +19,24 @@ use alloc::boxed::Box; use i_slint_core::platform::Platform; use i_slint_core::platform::PlatformError; -#[cfg(all(feature = "i-slint-backend-qt", not(no_qt)))] +#[cfg(all(feature = "i-slint-backend-qt", not(no_qt), not(target_os = "android")))] fn create_qt_backend() -> Result, PlatformError> { Ok(Box::new(default_backend::Backend::new())) } -#[cfg(feature = "i-slint-backend-winit")] +#[cfg(all(feature = "i-slint-backend-winit", not(target_os = "android")))] fn create_winit_backend() -> Result, PlatformError> { Ok(Box::new(i_slint_backend_winit::Backend::new()?)) } -#[cfg(feature = "i-slint-backend-linuxkms")] +#[cfg(all(feature = "i-slint-backend-linuxkms", not(target_os = "android")))] fn create_linuxkms_backend() -> Result, PlatformError> { Ok(Box::new(i_slint_backend_linuxkms::Backend::new()?)) } cfg_if::cfg_if! { - if #[cfg(all(feature = "i-slint-backend-qt", not(no_qt)))] { + if #[cfg(target_os = "android")] { + } else if #[cfg(all(feature = "i-slint-backend-qt", not(no_qt)))] { use i_slint_backend_qt as default_backend; } else if #[cfg(feature = "i-slint-backend-winit")] { use i_slint_backend_winit as default_backend; @@ -46,11 +48,11 @@ cfg_if::cfg_if! { } cfg_if::cfg_if! { - if #[cfg(any( + if #[cfg(all(not(target_os = "android"), any( all(feature = "i-slint-backend-qt", not(no_qt)), feature = "i-slint-backend-winit", feature = "i-slint-backend-linuxkms" - ))] { + )))] { fn create_default_backend() -> Result, PlatformError> { use alloc::borrow::Cow;