[package] name = "punktfunk-client-linux" description = "Native Linux punktfunk/1 client — GTK4/libadwaita shell, FFmpeg decode, PipeWire audio, SDL3 gamepads" version.workspace = true edition.workspace = true rust-version.workspace = true license.workspace = true authors.workspace = true repository.workspace = true [[bin]] name = "punktfunk-client" path = "src/main.rs" # Everything is Linux-gated so `cargo build --workspace` stays green on macOS (the Mac # client lives in clients/apple); on other platforms this builds as a stub binary. [target.'cfg(target_os = "linux")'.dependencies] # Session pump, decode, audio, gamepads, trust, discovery, keymap — the UI-agnostic # plumbing, shared with the upcoming Vulkan session binary (design: punktfunk-planning # linux-client-rearchitecture.md). This crate keeps only the GTK shell + GL presenter. pf-client-core = { path = "../../crates/pf-client-core" } punktfunk-core = { path = "../../crates/punktfunk-core", features = ["quic"] } # UI shell. GraphicsOffload needs GTK ≥ 4.14; black-background ≥ 4.16. AlertDialog/ # PreferencesDialog need libadwaita ≥ 1.5. gtk = { package = "gtk4", version = "0.11", features = ["v4_16"] } adw = { package = "libadwaita", version = "0.9", features = ["v1_5"] } async-channel = "2" serde_json = "1" anyhow = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } relm4 = { version = "0.11", features = ["libadwaita"] }