yoda: gate iced_wgpu x11 backend behind an opt-in feature
iced_wgpu's unix block unconditionally depended on as-raw-xcb-connection, tiny-xlib and x11rb for a DRI3 device-id fallback in window/compositor.rs that only fires when wayland can't determine the GPU. On a Wayland-only build this code path never runs, so the deps are pure bloat. Changes: - Cargo.toml: move the 3 x11 crates to optional + new feature `x11` (not in default — wayland-only is the yoda target; users who need X11 opt in). - window.rs: cfg-gate `mod x11;` on feature = "x11" - window/compositor.rs: cfg-gate `use super::x11::get_x11_device_ids` + the or_else fallback on feature = "x11" (wrapped in a let-binding so the non-x11 branch compiles cleanly). Result: iced_wgpu no longer pulls any x11 crate when built without the feature.
This commit is contained in:
parent
a50a29b390
commit
702b6359a5
3 changed files with 14 additions and 7 deletions
|
|
@ -7,7 +7,7 @@ pub mod compositor;
|
|||
not(target_os = "redox")
|
||||
))]
|
||||
mod wayland;
|
||||
#[cfg(all(unix, not(target_os = "macos"), not(target_os = "redox")))]
|
||||
#[cfg(all(unix, feature = "x11", not(target_os = "macos"), not(target_os = "redox")))]
|
||||
mod x11;
|
||||
|
||||
pub use compositor::Compositor;
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ use crate::{Engine, Renderer};
|
|||
not(target_os = "redox")
|
||||
))]
|
||||
use super::wayland::get_wayland_device_ids;
|
||||
#[cfg(all(unix, not(target_os = "macos"), not(target_os = "redox")))]
|
||||
#[cfg(all(unix, feature = "x11", not(target_os = "macos"), not(target_os = "redox")))]
|
||||
use super::x11::get_x11_device_ids;
|
||||
use std::future::Future;
|
||||
|
||||
|
|
@ -72,8 +72,10 @@ impl Compositor {
|
|||
not(target_os = "redox")
|
||||
))]
|
||||
let ids = compatible_window.as_ref().and_then(|window| {
|
||||
get_wayland_device_ids(window)
|
||||
.or_else(|| get_x11_device_ids(window))
|
||||
let w = get_wayland_device_ids(window);
|
||||
#[cfg(feature = "x11")]
|
||||
let w = w.or_else(|| get_x11_device_ids(window));
|
||||
w
|
||||
});
|
||||
|
||||
#[cfg(all(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue