[package]
name = "crepuscularity-cli"
version = "0.9.3"
edition = "2021"
license = "MPL-2.0"
description = "crepus CLI — scaffolding and builds for Crepuscularity (UNSTABLE; in active development)."
repository = "https://github.com/tschk/crepuscularity"
documentation = "https://docs.rs/crepuscularity-cli"
readme = "../../README.md"
include = ["assets/**", "build.rs", "src/**", "templates/**", "tests/**", "Cargo.toml"]

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

[[test]]
name = "web_cli"
path = "tests/web_cli.rs"

[[test]]
name = "benchmark_cli"
path = "tests/benchmark_cli.rs"

[[test]]
name = "embedded_cli"
path = "tests/embedded_cli.rs"

[[test]]
name = "embedded_check_cli"
path = "tests/embedded_check_cli.rs"

[features]
# Default: lightest build — no GPUI, no TUI, no Aurora.
default = []

# Desktop (GPUI) commands: `crepus new`, `crepus dev`, `crepus preview`.
# Enable for GPUI windowed preview on desktop platforms.
desktop = ["dep:gpui", "dep:crepuscularity-runtime"]

# TUI commands: `crepus tui preview`, `crepus benchmark` live dashboard.
# Requires ratatui + crossterm.
tui = ["dep:ratatui", "dep:crepuscularity-tui"]

# Aurora (SwiftUI) commands: `crepus aurora dev/build/new/swiftgen`.
# Shells out to the external `aurorality` CLI.
aurora = []

# Everything enabled — use this for release binaries.
full = ["desktop", "tui", "aurora"]

[dependencies]
gpui                   = { version = "=0.2.2", default-features = false, features = ["font-kit"], optional = true }
crepuscularity-core = { path = "../crepuscularity-core", version = "0.4.15" }
crepuscularity-runtime = { path = "../crepuscularity-runtime", version = "0.4.10", optional = true }
crepuscularity-tui = { path = "../crepuscularity-tui", version = "0.4.10", optional = true }
crepuscularity-web = { path = "../crepuscularity-web", version = "0.4.7", features = ["parallel"] }
crepuscularity-webext  = { path = "../crepuscularity-webext", version = "0.2.9" }
crepuscularity-native = { path = "../crepuscularity-native", version = "0.5.3" }
crepuscularity-embedded = { path = "../crepuscularity-embedded", version = "0.1.14" }
crepuscularity-lvgl = { path = "../crepuscularity-lvgl", version = "0.1.4" }
notify                 = { workspace = true }
walkdir                = { workspace = true }
serde                  = { workspace = true }
serde_json             = { workspace = true }
toml                   = { workspace = true }
console                = { workspace = true }
indicatif              = { workspace = true }
tracing                = { workspace = true }
tracing-subscriber     = { workspace = true }
 rayon                  = { workspace = true }
ratatui = { version = "0.30", default-features = false, features = ["crossterm"], optional = true }
ctrlc = "3"

[dev-dependencies]
tempfile = { workspace = true }
