[package]
name = "lact-daemon"
version = "0.9.2"
edition.workspace = true

[features]
default = ["nvidia", "display-info"]
bench = ["dep:divan"]
nvidia = []
display-info = ["dep:libdisplay-info"]

[dependencies]
lact-schema = { path = "../lact-schema" }

amdgpu-sysfs = { workspace = true }
anyhow = { workspace = true }
tracing = { workspace = true }
serde = { workspace = true, features = ["rc"] }
serde_with = { workspace = true }
serde_json = { workspace = true }
tracing-subscriber = { workspace = true }
nix = { workspace = true, features = ["user", "fs", "ioctl", "socket"] }
jiff = { workspace = true }
tokio = { workspace = true, features = [
    "rt",
    "macros",
    "net",
    "time",
    "signal",
    "sync",
] }
futures = { workspace = true }
indexmap = { workspace = true }
divan = { workspace = true, optional = true }
serde_norway = { workspace = true }

nvml-wrapper = "0.12.1"
bitflags = "2.11.1"
pciid-parser = { version = "0.8", features = ["serde"] }
zbus = { version = "5.14.0", default-features = false, features = ["tokio"] }
libdrm_amdgpu_sys = { version = "0.8.16", default-features = false, features = [
    "dynamic_loading",
] }
tar = "0.4.45"
libflate = "2.3.0"
os-release = "0.1.0"
notify = { version = "8.2.0", default-features = false }
libcopes = "1.0.0"
libloading = "0.8.9" # Can be updated when https://github.com/rust-lang/rust-bindgen/issues/3332 is released

ureq = { version = "3.3.0", features = ["json", "rustls"] }
libdisplay-info = { version= "0.3.0", optional = true }

[dev-dependencies]
pretty_assertions = { workspace = true }
insta = { version = "1.47.2", features = ["json", "yaml"] }
easy_fuser = { version = "0.4.5", features = ["parallel"] }
tempfile = "3.27.0"

[build-dependencies]
bindgen = "0.72"
serde_json = { workspace = true }
