[package]
name = "jay-compositor"
version = "1.11.0"
edition = "2024"
build = "build/build.rs"
license = "GPL-3.0-only"
description = "The Jay compositor"
repository = "https://github.com/mahkoh/jay"
default-run = "jay"

[[bin]]
name = "jay"
path = "src/main.rs"

[workspace]
members = ["jay-config", "toml-config", "algorithms", "toml-spec", "wire-to-xml", "xml-to-wire"]

[profile.release]
panic = "abort"
debug = "full"

[profile.dev]
panic = "abort"

[dependencies]
jay-config = { version = "1.9.0", path = "jay-config" }
jay-toml-config = { version = "0.11.0", path = "toml-config" }
jay-algorithms = { version = "0.4.0", path = "algorithms" }

uapi = "0.2.13"
thiserror = "2.0.11"
ahash = "0.8.7"
log = { version = "0.4.20", features = ["std"] }
futures-util = "0.3.30"
num-traits = "0.2.17"
num-derive = "0.4.2"
libloading = "0.9.0"
bstr = { version = "1.9.0", default-features = false, features = ["std"] }
isnt = "0.2.0"
once_cell = "1.19.0"
rand = "0.10.0"
smallvec = { version = "1.11.1", features = ["const_generics", "const_new", "union"] }
byteorder = "1.5.0"
bincode = "1.3.3"
pin-project = "1.1.4"
clap = { version = "4.4.18", features = ["derive", "wrap_help"] }
clap_complete = "4.4.10"
humantime = "2.1.0"
dirs = "6.0.0"
backtrace = "0.3.69"
chrono = "0.4.33"
parking_lot = "0.12.1"
arrayvec = "0.7.4"
indexmap = "2.2.0"
ash = { package = "jay-ash", version = "0.3.0" }
gpu-alloc = "0.6.0"
gpu-alloc-types = "0.3.0"
serde = { version = "1.0.196", features = ["derive"] }
serde_json = "1.0.128"
linearize = { version = "0.1.3", features = ["derive"] }
png = "0.18.0"
rustc-demangle = { version = "0.1.24", optional = true }
tracy-client-sys = { version = "0.24.1", features = ["ondemand", "manual-lifetime", "debuginfod", "demangle"], optional = true }
kbvm = { version = "0.1.6", features = ["compose"] }
tiny-skia = { version = "0.12.0", default-features = false, features = ["std"] }
regex = "1.11.1"
cfg-if = "1.0.0"
opera = "1.0.1"
with_builtin_macros = "0.1.0"
blake3 = "1.8.2"
run-on-drop = "1.0.0"
egui = { version = "0.33.3", default-features = false }
egui_tiles = { version = "0.14.1", default-features = false }

[build-dependencies]
repc = "0.1.1"
anyhow = "1.0.79"
bstr = { version = "1.9.0", default-features = false, features = ["std"] }
cc = "1.0.86"
blake3 = "1.8.2"
walkdir = "2.5.0"

#[profile.dev.build-override]
#opt-level = 3

[profile.dev.package."jay-algorithms"]
opt-level = 3

[profile.dev.package."smallvec"]
opt-level = 3

[profile.dev.package."egui"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."emath"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."epaint"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."ab_glyph"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."ab_glyph_rasterizer"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."owned_ttf_parser"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."ttf-parser"]
opt-level = 3
debug = "line-tables-only"

[profile.dev.package."ecolor"]
opt-level = 3
debug = "line-tables-only"

[features]
rc_tracking = []
it = []
tracy = ["dep:tracy-client-sys", "dep:rustc-demangle"]
