[package] name = "smithay" version = "0.3.0" authors = ["Victor Berger ", "Drakulix (Victoria Brekenfeld)"] license = "MIT" description = "Smithay is a library for writing wayland compositors." repository = "https://github.com/Smithay/smithay" edition = "2021" readme = "README.md" homepage = "https://smithay.github.io/" keywords = ["wayland", "compositor", "graphics", "server"] categories = ["gui"] rust-version = "1.72.0" [package.metadata.docs.rs] features = ["test_all_features"] rustdoc-args = ["--cfg", "docsrs"] [workspace] members = [ "smithay-drm-extras", "smallvil", "anvil", "wlcs_anvil" ] [dependencies] appendlist = "1.4" ash = { version = "0.38.0", optional = true } bitflags = "2.2.1" calloop = "0.14.0" cursor-icon = "1.0.0" cgmath = "0.18.0" downcast-rs = "1.2.0" drm-fourcc = "^2.2.0" drm = { version = "0.12.0", optional = true } drm-ffi = { version = "0.8.0", optional = true } errno = "0.3.5" gbm = { version = "0.15.0", optional = true, default-features = false, features = ["drm-support"] } glow = { version = "0.14", optional = true } input = { version = "0.9.0", default-features = false, features=["libinput_1_19"], optional = true } indexmap = "2.0" libc = "0.2.103" libseat = { version = "0.2.1", optional = true, default-features = false } libloading = { version="0.8.0", optional = true } rustix = { version = "0.38.18", features = ["event", "fs", "mm", "net", "shm", "time"] } once_cell = "1.8.0" rand = "0.8.4" scopeguard = { version = "1.1.0", optional = true } tracing = "0.1.37" tempfile = { version = "3.0", optional = true } thiserror = "1.0.25" udev = { version = "0.8.0", optional = true } # Require never `wayland-client`/`wayland-cursor` than winit uses to fix `-Z minimal-versions` # due to issue in older version. wayland-client = { version = "0.31.3", optional = true } wayland-cursor = { version = "0.31.3", optional = true } wayland-egl = { version = "0.32.0", optional = true } wayland-protocols = { version = "0.32.4", features = ["unstable", "staging", "server"], optional = true } wayland-protocols-wlr = { version = "0.3.1", features = ["server"], optional = true } wayland-protocols-misc = { version = "0.3.1", features = ["server"], optional = true } wayland-server = { version = "0.31.0", optional = true } wayland-sys = { version = "0.31", optional = true } wayland-backend = { version = "0.3.5", optional = true } winit = { version = "0.30.0", default-features = false, features = ["wayland", "wayland-dlopen", "x11", "rwh_06"], optional = true } x11rb = { version = "0.13.0", optional = true } xkbcommon = { version = "0.8.0", features = ["wayland"]} encoding_rs = { version = "0.8.33", optional = true } profiling = "1.0" smallvec = "1.11" pixman = { version = "0.1.0", features = ["drm-fourcc"], optional = true } [dev-dependencies] clap = { version = "4", features = ["derive"] } criterion = { version = "0.5" } image = "0.25" tracing-subscriber = { version = "0.3.16", features = ["env-filter"] } [build-dependencies] gl_generator = { version = "0.14", optional = true } pkg-config = { version = "0.3.17", optional = true } cc = { version = "1.0.79", optional = true } [features] default = ["backend_drm", "backend_gbm", "backend_libinput", "backend_udev", "backend_session_libseat", "backend_x11", "backend_winit", "desktop", "renderer_gl", "renderer_pixman", "renderer_multi", "xwayland", "wayland_frontend", "backend_vulkan"] backend_winit = ["winit", "backend_egl", "wayland-client", "wayland-cursor", "wayland-egl", "renderer_gl"] backend_x11 = ["x11rb", "x11rb/dri3", "x11rb/xfixes", "x11rb/xinput", "x11rb/present", "x11rb_event_source", "backend_gbm", "backend_drm", "backend_egl"] backend_drm = ["drm", "drm-ffi"] backend_gbm = ["gbm", "cc", "pkg-config"] backend_gbm_has_fd_for_plane = [] backend_gbm_has_create_with_modifiers2 = [] backend_egl = ["gl_generator", "libloading"] backend_libinput = ["input"] backend_session = [] backend_udev = ["udev", "input/udev"] backend_vulkan = ["ash", "scopeguard"] backend_session_libseat = ["backend_session", "libseat"] desktop = [] renderer_gl = ["gl_generator", "backend_egl"] renderer_glow = ["renderer_gl", "glow"] renderer_multi = ["backend_drm"] renderer_pixman = ["pixman"] renderer_test = [] use_system_lib = ["wayland_frontend", "wayland-backend/server_system", "wayland-sys", "gbm?/import-wayland"] use_bindgen = ["drm-ffi/use_bindgen", "gbm/use_bindgen", "input/use_bindgen"] wayland_frontend = ["wayland-server", "wayland-protocols", "wayland-protocols-wlr", "wayland-protocols-misc", "tempfile"] x11rb_event_source = ["x11rb"] xwayland = ["encoding_rs", "wayland_frontend", "x11rb/composite", "x11rb/xfixes", "x11rb_event_source", "scopeguard"] test_all_features = ["default", "use_system_lib", "renderer_glow", "renderer_test"] [[example]] name = "minimal" required-features = ["backend_winit", "renderer_gl", "wayland_frontend"] [[example]] name = "seat" required-features = ["wayland_frontend"] [[example]] name = "compositor" required-features = ["wayland_frontend"] [[example]] name = "vulkan" required-features = ["backend_vulkan"] [[example]] name = "buffer_test" required-features = ["backend_drm", "backend_gbm", "backend_egl", "backend_vulkan", "renderer_gl"] [[bench]] name = "benchmark" harness = false [[bench]] name = "geometry" harness = false [profile.release-with-debug] inherits = "release" debug = true