# Copyright 2023 Oatbar Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

[package]
name = "oatbar"
version = "0.3.1"
edition = "2021"
description = "Powerful and customizable DE and WM status bar"
keywords = ["x11", "wm", "bar"]
categories = ["graphics", "visualization"]
license = "Apache-2.0"
documentation = "https://github.com/igor-petruk/oatbar"
repository = "https://github.com/igor-petruk/oatbar"
homepage = "https://oatbar.app"
default-run="oatbar"

[[bin]]
name="oatbar-keyboard"
path="src/keyboard.rs"

[[bin]]
name="oatbar-desktop"
path="src/desktop.rs"

[[bin]]
name="oatbar-stats"
path="src/stats.rs"

[[bin]]
name="oatbar-llm"
path="src/llm.rs"
required-features = ["llm"]

[[bin]]
name="oatctl"
path="src/cli.rs"

[[bin]]
name="oatbar-sni"
path="src/sni.rs"

[[bin]]
name="oatbar-mpris"
path="src/mpris.rs"

[[bin]]
name="oatbar-mcp"
path="src/mcp.rs"
required-features = ["mcp"]

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

[features]
default=["bmp", "ico", "image", "jpeg", "png", "webp", "svg", "raster", "llm", "llm-google", "llm-openai", "llm-anthropic", "llm-mistral", "llm-xai", "llm-ollama", "x11", "wayland", "mcp"]
mcp=["dep:rmcp", "dep:schemars", "dep:tokio"]
image=[]
raster=["dep:image"]
bmp=["image", "raster", "image/bmp"]
ico=["image", "raster", "image/ico"]
jpeg=["image", "raster", "image/jpeg"]
png=["image", "raster", "image/png"]
webp=["image", "raster", "image/webp"]
svg=["image", "dep:resvg"]
profile = ["dep:pprof"]
llm = ["dep:llm", "dep:tokio"]
llm-google = ["llm", "llm/google"]
llm-openai = ["llm", "llm/openai"]
llm-anthropic = ["llm", "llm/anthropic"]
llm-mistral = ["llm", "llm/mistral"]
llm-xai = ["llm", "llm/xai"]
llm-ollama = ["llm", "llm/ollama"]
x11 = ["dep:xcb", "cairo-rs/xcb"]
wayland = ["dep:smithay-client-toolkit", "dep:wayland-client", "dep:calloop", "dep:calloop-wayland-source", "dep:swayipc", "dep:wayland-protocols-wlr", "dep:wayland-protocols", "dep:hyprland"]
gtk4_icons = ["dep:gtk4", "dep:gdk4"]

[dependencies]
pprof = { version = "0.15", features = ["flamegraph"], optional = true }
anyhow = "1"
bytesize = "2.0"
cairo-rs = { version = "0.22", default-features = false }
derive_builder = "0.20"
dirs = "6.0"
pangocairo = "0.22"
pango = {version="0.22", features=["v1_52"]}
regex = "1"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
serde_regex = "1.1.0"
serde_with = { version = "3", default-features = false, features = ["macros", "std"] }
toml = "1.1"
tracing = "0.1"
tracing-appender = "0.2"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
xcb = { version = "1.7", features = ["randr", "xkb", "xlib_xcb", "xinput"], optional = true }
itertools = "0.14"
thiserror = "2.0.17"
macro_rules_attribute = "0.2.0"
crossbeam-channel = "0.5.8"
clap = {version="4.4.8", features=["derive"]}
fork = "0.7"
llm = { version= "1.3", features=["default-tls"], default-features=false, optional=true }
tokio = { version = "1", features = ["full"], optional=true }
libc = "0.2.150"
systemstat = "0.2.3"
nix = { version = "0.31", features = ["net"] }
image = { version = "0.25.1", optional=true, default-features = false }
resvg = {version = "0.47", optional=true}
chrono = { version = "0.4.42", features = ["serde"] }
serde_ext_duration = "0.2.0"
smithay-client-toolkit = { version = "0.20.0", optional = true }
wayland-client = { version = "0.31.11", optional = true }
calloop = { version = "0.14.3", optional = true }
calloop-wayland-source = { version = "0.4.1", optional = true }
swayipc = { version = "4.0.0", optional = true }
hyprland = { version = "0.4.0-beta.3", optional = true }
wayland-protocols-wlr = { version = "0.3", features = ["client"], optional = true }
wayland-protocols = { version = "0.32", features = ["client"], optional = true }
zbus = { version = "5", default-features = false, features = ["tokio"] } 
event-listener = "5.4.1"
futures-util = "0.3.31"
gtk4 = { version = "0.11", optional = true }
gdk4 = { version = "0.11", optional = true }
battery = "0.7.8"
rmcp = { version = "1.3.0", features = ["macros", "server", "transport-io"], optional = true }
schemars = { version = "1.2", optional = true }
