[package]
name = "memocadre"
version = "0.2.1"
edition = "2021"
license = "GPL-3.0"
authors = ["Thomas Loubiou <xabufr@gmail.com>"]
description = "Slideshow application for digital picture frames, streaming photos from an Immich server with smooth, GPU‑accelerated rendering on low‑power devices"
exclude = [
  "docs/*",
]

[profile.release]
lto = "thin"
codegen-units = 1

[profile.profiling]
inherits = "release"
debug = true

[dependencies]
anyhow = "1.0.95"
array-init = "2.1.0"
axum = { version = "0.8.1", default-features = false, features = ["http1", "json", "tokio"] }
backon = { version = "1.3.0", default-features = false, features = ["std-blocking-sleep", "tokio-sleep"] }
better_default = "1.0.5"
bytemuck = { version = "1.21.0", features = ["derive"] }
chrono = { version = "0.4.39", default-features = false, features = ["alloc", "serde", "std", "unstable-locales"] }
config = { version = "0.15.8", default-features = false, features = ["toml", "yaml"] }
directories = "6.0.0"
drm = {version = "0.14.1", optional = true}
env_logger = "0.11.6"
epaint = { version = "0.33", features = ["mint"] }
gbm = { version = "0.18.0", default-features = false, features = ["drm-support"], optional = true }
glissade = { version = "0.2.5", default-features = false, features = ["derive"] }
glow = { version = "0.16.0", features = ["log", "debug_automatic_glGetError", "debug_trace_calls"] }
glutin = { version = "0.32.2", default-features = false, features = ["egl", "x11"] }
glutin-winit = { version = "0.5.0", default-features = false, features = ["egl", "x11"], optional = true }
humantime-serde = "1.1.1"
image = { version = "0.25.5", features = ["default-formats"], default-features = false }
itertools = "0.14.0"
log = "0.4.22"
machine-uid = "0.5.3"
memoffset = "0.9.1"
micromap = "0.1"
minreq = { version = "2.13.0", features = ["https-rustls", "punycode", "json-using-serde"] }
mint = "0.5.9"
paste = "1.0.15"
rand = "0.9.0"
raw-window-handle = "0.6.2"
rumqttc = { version = "0.25", default-features = false }
serde = { version = "1.0.217", features = ["derive"] }
serde_json = "1.0.134"
serde_repr = "0.1.19"
smart-default = "0.7.1"
struct-patch = { version = "0.10", features = ["merge"] }
thread-priority = "3"
tokio = { version = "1.44.0", features = ["sync"] }
vek = { version = "0.17.1", features = ["bytemuck", "mint"] }
winit = { version = "0.30.8", default-features = false, features = ["x11"], optional = true }

[dev-dependencies]
faux = "0.1.12"
googletest = "0.14"
temp-dir = "0.1.16"

[features]
default = ["winit", "drm"]
winit = ["dep:glutin-winit", "dep:winit"]
drm = ["dep:drm", "dep:gbm"]

[package.metadata.deb]
maintainer-scripts = "debian/"
systemd-units = { enable = true }
assets = [
  # binary
  ["target/release/memocadre", "/usr/bin/", "755"],
  # config
  ["debian/config.yaml", "etc/memocadre/config.yaml", "600"],
  ["debian/settings.yaml", "etc/memocadre/settings.yaml", "600"],
]
depends = [
    "libgbm1"
]
