[package]
name = "wayvr"
version = "26.1.2"
edition = "2024"
license = "GPL-3.0-only"
authors = ["galister", "oo8dev"]
description = "Your way to enjoy VR on Linux! Access your Wayland/X11 desktop from Monado/WiVRn/SteamVR."
repository = "https://github.com/wlx-team/wayvr"
keywords = [
  "linux",
  "openvr",
  "openxr",
  "x11",
  "wayland",
  "openvr-overlay",
  "openxr-overlay",
]
categories = ["games"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
dash-frontend = { path = "../dash-frontend/" }
wayvr-ipc = { path = "../wayvr-ipc", default-features = false }
wgui = { path = "../wgui" }
wlx-capture = { path = "../wlx-capture" }
wlx-common = { path = "../wlx-common" }

anyhow.workspace = true
clap.workspace = true
glam = { workspace = true, features = ["mint", "serde"] }
idmap = { workspace = true, features = ["serde"] }
idmap-derive.workspace = true
log.workspace = true
rust-embed.workspace = true
regex.workspace = true
slotmap.workspace = true
serde = { workspace = true, features = ["rc"] }
serde_json.workspace = true
strum.workspace = true
vulkano.workspace = true
vulkano-shaders.workspace = true
xdg.workspace = true

ash = "^0.38.0" # must match vulkano
bytes = { version = "1.11.0" }
chrono = "0.4.42"
chrono-tz = "0.10.4"
config = "0.15.19"
dbus = { version = "0.9.9" }
futures = "0.3.31"
image_dds = { version = "0.7.2", default-features = false, features = [
  "ddsfile",
] }
input-linux = "0.7.1"
interprocess = { version = "2.2.3" }
json = { version = "0.12.4", optional = true }
json5 = "1.3.0"
libc = "0.2.178"
libmonado = { git = "https://github.com/technobaboo/libmonado-rs.git", rev = "26292e5b14663ee2f089f66f0851438a0c00ee67", optional = true }
log-panics = { version = "2.1.0", features = ["with-backtrace"] }
mint = "0.5.9"
openxr = { version = "0.21.0", features = [
  "linked",
  "mint",
], optional = true }
ovr_overlay = { features = [
  "ovr_input",
  "ovr_system",
], git = "https://github.com/galister/ovr_overlay_oyasumi", rev = "8d62c73d5f17e4210d6d0cd52e7f3953eb9b481a", optional = true }
rosc = { version = "0.11.4", optional = true }
serde_json5 = "0.2.1"
serde_yaml = "0.9.34"
signal-hook = "0.3.18"
smallvec = "1.15.1"
smithay = { version = "0.7.0", default-features = false, features = [
  "backend_vulkan",
  "desktop",
  "xwayland",
  "wayland_frontend",
]}
sysinfo = { version = "0.37" }
thiserror = "2.0"
tracing-subscriber = { version = "0.3.22", features = ["env-filter"] }
tracing = "0.1.43"
uuid = { version = "1.19.0", features = ["v4", "fast-rng"] }
wayland-client = { workspace = true }
winit = { version = "0.30.12", optional = true }
xcb = { version = "1.6.0", optional = true, features = [
  "as-raw-xcb-connection",
] }
xkbcommon = { version = "0.8.0" } # 0.9.0 breaks keymap import on some distros

[build-dependencies]
regex.workspace = true

[features]
default = ["openvr", "openxr", "osc", "x11", "wayland" ]
openvr = ["dep:ovr_overlay", "dep:json"]
openxr = ["dep:openxr", "dep:libmonado"]
osc = ["dep:rosc"]
x11 = ["dep:xcb", "wlx-capture/xshm", "xkbcommon/x11"]
wayland = ["pipewire", "wlx-capture/wlr", "xkbcommon/wayland"]
pipewire = ["wlx-capture/pipewire"]
uidev = ["dep:winit"]
xcb = ["dep:xcb"]
as-raw-xcb-connection = []
