🔒 Repository is read-only – file editing is disabled.

PaganDE/pagan-compositor/Cargo.toml main

77 linii Raw ← Powrót
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
[package]
name = "pagan-compositor"
version = "0.1.0"
edition = "2021"
license = "MIT"
description = "PaganDE: kompozytor Wayland (floating, hybrydowe CSD) zbudowany na Smithay 0.7"
publish = false

# Uwaga: korzystamy z VENDORED Smithay 0.7.0, żeby build działał offline i był
# powtarzalny (zgodnie z podejściem "trzymamy się pakietów obecnych w PaganDE").
# Gdy chcesz wziąć Smithay z crates.io, podmień na:
#     smithay = { version = "0.7", default-features = false, features = [...] }
#
# Włączamy możliwie wąski zestaw feature'ów, żeby ograniczyć czas budowania
# i liczbę zależności systemowych:
#   - backend_winit    : backend okienkowy (X11/Wayland) do developmentu
#   - desktop          : Space / Window (floating window manager)
#   - renderer_gl      : GlesRenderer (EGL/OpenGL)
#   - renderer_glow    : eksponuje crate `glow` (m.in. do własnych shaderów)
#   - wayland_frontend : protokoły Waylanda po stronie serwera (xdg-shell, decoration, shm)
[dependencies]
smithay = { path = "../smithay-0.7.0", default-features = false, features = [
    "backend_winit",
    "desktop",
    "renderer_gl",
    "renderer_glow",
    "wayland_frontend",
    # XWayland: uruchamianie aplikacji X11 (wymaga binarki `Xwayland` w PATH).
    "xwayland",
] }
anyhow = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
# Ładowanie kursora z motywu XCursor (System: libXcursor).
xcursor = "0.3"
# Definicje protokołu wlr-screencopy (serwer) — implementujemy jego logikę sami.
wayland-protocols-wlr = { version = "0.3", features = ["server"] }
# Wymagane tylko przez backend tty-udev (feature `udev`):
rustix = { version = "1.0", optional = true, features = ["fs"] }
# `smithay-drm-extras` daje `DrmScanner` (skanowanie konektorów/CRTC) — Smithay 0.7
# przeniósł to do osobnego crate'a. `default-features = false`, bo nie używamy
# `display-info` (a to pociągnęłoby zależność od libdisplay-info).
smithay-drm-extras = { path = "../smithay-0.7.0/smithay-drm-extras", default-features = false, optional = true }
inotify = { version = "0.11.5", default-features = false }
# Rasteryzacja tekstu w kompozytorze (tytuł, etykiety menu aplikacji).
# Cairo jest już pakietem w PaganOS (używa go też toolkit), więc nie dokładamy
# nowej zależności systemowej — tylko tę samą, sprawdzoną bibliotekę.
cairo-rs = "0.22"
# Własny protokół menu aplikacji (pagan-app-menu-v1): generowanie kodu serwera
# z XML-owego opisu. `wayland-server` jest potrzebny, bo wygenerowany kod
# odwołuje się do niego bezpośrednio po nazwie crate'a.
wayland-server = "0.31"
wayland-backend = "0.3"
wayland-scanner = "0.31"

[features]
default = []
# Produkcyjny backend: DRM/KMS + EGL/GBM + libinput + libseat.
# Wymaga bibliotek systemowych: libdrm, libgbm, libinput, libudev, libseat.
udev = [
    "dep:rustix",
    "dep:smithay-drm-extras",
    "smithay/backend_drm",
    "smithay/backend_gbm",
    "smithay/backend_egl",
    "smithay/backend_udev",
    "smithay/backend_libinput",
    "smithay/backend_session_libseat",
    "smithay/renderer_multi",
]

[profile.release]
debug = true

# Backend tty-udev (produkcja) jest dostępny przez feature `udev`:
#   cargo build --features udev && ./target/debug/pagan-compositor --tty-udev
# Zobacz README.md, sekcja "Backend tty-udev (produkcja)".