[package]
name = "phira"
version = { workspace = true }
edition = { workspace = true }
license = { workspace = true }

[lints]
workspace = true

[lib]
crate-type = ["lib", "cdylib"]

[features]
default = ["video"]
video = ["prpr/video"]
chat = []
hykb = []
event_debug = []

[dependencies]
anyhow = { workspace = true }
arc-swap = "1.9.0"
async-trait = { workspace = true }
base64 = { workspace = true }
bitflags = { workspace = true }
bytes = "1.11.1"
bytesize = "2.3.1"
cacache = { version = "13.1.0", default-features = false, features = [
    "tokio-runtime",
] }
cfg-if = "1.0.4"
chrono = { workspace = true, features = ["serde"] }
dashmap = "6.1.0"
futures-util = { workspace = true }
hex = { workspace = true }
http = { workspace = true }
image = { workspace = true, default-features = false, features = [
    "bmp",
    "gif",
    "jpeg",
    "png",
    "rayon",
    "webp",
] }
inputbox = { workspace = true }
logos = "0.16.1"
lru = { workspace = true }
lyon = { workspace = true }
macroquad = { workspace = true, default-features = false }
nalgebra = { workspace = true }
obfstr = "0.4.4"
once_cell = { workspace = true }
pollster = { workspace = true }
prpr = { workspace = true, features = ["log"], default-features = false }
prpr-l10n = { workspace = true }
rand = { workspace = true }
regex = { workspace = true }
reqwest = { workspace = true, default-features = false, features = [
    "json",
    "stream",
    "gzip",
    "charset",
    "http2",
    "system-proxy",
    "rustls",
    "query",
] }
semver = { version = "1.0.27", features = ["serde"] }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
serde_yaml = { workspace = true }
sha2 = { workspace = true }
smallvec = "1.15.1"
tap = "1.0.1"
tempfile = { workspace = true }
tokio = { workspace = true, features = ["rt-multi-thread", "sync"] }
tracing = { workspace = true }
uuid = { workspace = true, features = ["v4", "serde"] }
walkdir = { workspace = true }
zip = { workspace = true, features = ["chrono"] }
zstd = "0.13"

miniquad = { workspace = true }
phira-mp-client = { workspace = true }
phira-mp-common = { workspace = true }
sanitize-filename = "0.6.0"
daachorse = "3.0.2"

[target.'cfg(target_os = "android")'.dependencies]
jni = "0.22.4"
ndk-context = "0.1"
sasa = { workspace = true, default-features = false, features = ["oboe"] }

[target.'cfg(target_env = "ohos")'.dependencies]
sasa = { workspace = true, default-features = false, features = ["ohos"] }
napi-derive-ohos = { version = "1.1.6" }
napi-ohos = { version = "1.1.6", default-features = false, features = [
    "napi8",
    "async",
] }

[target.'cfg(not(any(target_os = "android", target_env = "ohos")))'.dependencies]
sasa = { workspace = true, default-features = true }

[target.'cfg(not(any(target_os = "android", target_os = "ios", target_env = "ohos")))'.dependencies]
rfd = { workspace = true }

[target.'cfg(target_os = "ios")'.dependencies]
objc2 = { workspace = true }
objc2-foundation = { workspace = true }
objc2-ui-kit = { workspace = true }

[build-dependencies]
dotenv-build = "0.1"

[dev-dependencies]
fluent = { workspace = true }
fluent-syntax = { workspace = true }
