Cargo Features

[dependencies]
smithay = { version = "0.4.4", default-features = false, features = ["backend_winit", "backend_x11", "backend_drm", "backend_gbm", "backend_gbm_has_create_with_modifiers2", "backend_egl", "backend_libinput", "backend_session", "backend_udev", "backend_vulkan", "backend_session_libseat", "desktop", "renderer_gl", "renderer_glow", "renderer_multi", "renderer_pixman", "renderer_test", "use_system_lib", "use_bindgen", "wayland_frontend", "x11rb_event_source", "xwayland", "test_all_features"] }
default test_all_features? = backend_drm, backend_gbm, backend_libinput, backend_session_libseat, backend_udev, backend_vulkan, backend_winit, backend_x11, desktop, renderer_gl, renderer_multi, renderer_pixman, wayland_frontend, xwayland

These default features are set whenever smithay is added without default-features = false somewhere in the dependency tree.

backend_winit default = backend_egl, renderer_gl, wayland-client, wayland-cursor, wayland-egl, winit

Affects native::XlibWindow, backend::winit

backend_x11 default = backend_drm, backend_egl, backend_gbm, x11rb, x11rb_event_source

Enables dri3, present, xfixes and xinput of x11rb

Affects backend::x11

backend_drm default backend_x11 renderer_multi = drm, drm-ffi

Affects allocator::dumb, exporter::dumb, drm::dumb, backend::drm, wayland::drm_lease, wayland::drm_syncobj

backend_gbm default backend_x11 = cc, gbm, pkg-config

Affects allocator::gbm, exporter::gbm, drm::gbm, drm::compositor, drm::output, multigpu::gbm

backend_gbm_has_fd_for_plane backend_gbm_has_create_with_modifiers2
backend_egl backend_winit backend_x11 renderer_gl = gl_generator, libloading

Affects backend::egl, renderer::ImportEgl, multigpu::gbm

backend_libinput default = input

Affects backend::libinput

backend_session backend_session_libseat

Affects libinput::LibinputSessionInterface, backend::session

backend_udev default = udev

Enables udev of input

Affects backend::udev

backend_vulkan default = ash, scopeguard

Affects allocator::vulkan, backend::vulkan

backend_session_libseat default = backend_session, libseat

Affects session::libseat

desktop default

Affects smithay::desktop

renderer_gl default backend_winit renderer_glow? = backend_egl, gl_generator

Affects renderer::gles, multigpu::gbm

renderer_glow test_all_features? = glow, renderer_gl

Affects renderer::glow

renderer_multi default = backend_drm

Affects renderer::multigpu

renderer_pixman default = pixman

Affects renderer::pixman

renderer_test test_all_features?

Affects renderer::test

use_system_lib test_all_features? = wayland-sys, wayland_frontend

Enables server_system of wayland-backend, import-wayland of optional gbm

Affects display::EGLBufferReader, egl::EGLBuffer, renderer::ImportEgl

use_bindgen

Enables use_bindgen of drm-ffi, gbm, and input

wayland_frontend default use_system_lib? xwayland = tempfile, wayland-protocols, wayland-protocols-misc, wayland-protocols-wlr, wayland-server

Affects dmabuf::DmabufBlocker, gbm::framebuffer_from_wayland_buffer, egl::BufferAccessError, element::surface, renderer::ImportMemWl, renderer::ImportDmaWl, renderer::ImportAll, renderer::BufferType, renderer::buffer_type, renderer::buffer_has_alpha, renderer::buffer_dimensions, renderer::buffer_y_inverted, smithay::wayland, xserver::XWaylandClientData.compositor_state, drm::compositor, drm::output, display::EGLBufferReader, egl::EGLBuffer, renderer::ImportEgl

x11rb_event_source backend_x11 xwayland = x11rb

Affects utils::x11rb

xwayland default = encoding_rs, scopeguard, wayland_frontend, x11rb_event_source

Enables composite and xfixes of x11rb

Affects smithay::xwayland, wayland::xwayland_keyboard_grab, wayland::xwayland_shell

test_all_features = default, renderer_glow, renderer_test, use_system_lib

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

ash backend_vulkan
drm backend_drm
drm-ffi backend_drm use_bindgen?
gbm backend_gbm use_bindgen?
glow renderer_glow?
input backend_libinput backend_udev use_bindgen?
libseat backend_session_libseat
libloading backend_egl?
scopeguard backend_vulkan xwayland
tempfile wayland_frontend
udev backend_udev
wayland-client backend_winit

Enables wayland-client

Require never wayland-client/wayland-cursor than winit uses to fix -Z minimal-versions due to issue in older version.

wayland-cursor backend_winit
wayland-egl backend_winit
wayland-protocols wayland_frontend
wayland-protocols-wlr wayland_frontend
wayland-protocols-misc wayland_frontend
wayland-server wayland_frontend
wayland-sys use_system_lib?
wayland-backend use_system_lib?
winit backend_winit
x11rb backend_x11 x11rb_event_source? xwayland
encoding_rs xwayland
pixman renderer_pixman
gl_generator build backend_egl? renderer_gl
pkg-config build backend_gbm
cc build backend_gbm