[package]
name = "catwaiter"
version = "0.1.0"
edition = "2021"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "meowframe"
crate-type = ["cdylib", "rlib"]

[dependencies]
assets_manager = { version = "0.11.2", features = ["hot-reloading", "embedded", "flac", "wav", "jpeg", "png", "ron", "json"] }
bincode = "1.3.3"
bytemuck = { version = "1.14.0", features = ["derive"] }
color-eyre = "0.6.2"
egui = "0.26.0"
egui-wgpu = "0.26.0"
egui-winit = { version = "0.26.0", default-features = false }
encase = { version = "0.7.0", features = ["glam"] }
env_logger = "0.10.1"
getrandom = { version = "0.2.12", optional = true }
glam = { version = "0.25.0", features = ["bytemuck", "debug-glam-assert", "mint", "approx", "serde"] }
glyphon = { version = "0.5", git = "https://github.com/Jengamon/glyphon.git", branch = "bump-cosmic", default-features = false }
hecs = "0.10.4"
image = "0.24.7"
kira = { version = "0.8.7", features = ["serde"] }
# leptos_reactive = { version = "0.6.5", features = ["csr"] }
log = "0.4.20"
naga = { version = "0.19.0", features = ["spv-out", "wgsl-out"] }
naga_oil = "0.13.0"
palette = { version = "0.7.4", features = ["serde", "serializing"] }
# piccolo = "0.3.1"
pollster = { version = "0.3.0", features = ["macro"], optional = true }
puffin = "0.19"
puffin_http = { version = "0.16", optional = true }
rand = "0.8.5"
redb = "1.5.0"
serde = { version = "1.0.196", features = ["derive"] }
serde_json = "1.0.113"
thiserror = "1.0.56"
tracing = "0.1.40"
tracing-log = "0.2.0"
tracing-logfmt = "0.3.3"
tracing-subscriber = { version = "0.3.18" }
tryhard = "0.5.1"
tween = { version = "2.0.2", features = ["glam"] }
ulid = { version = "1.1.2", features = ["serde"] }
winit = { version = "0.29", features = ["rwh_06"] }
wgpu = { version = "0.19", default-features = false }
instant = "0.1.12"
cosync = "0.2.1"
# oneshot = "0.1.6"
waker-fn = "1.1.1"
cosmic-text = { version = "0.11.0", default-features = false, features = [] }
sys-locale = "0.3.1"
ttf-parser = "0.20.0"
async-mutex = "1.4.0"
flume = "0.11.0"
poll-promise = "0.3.0"

[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1.6"
console_log = "1.0"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4.30"
# lock this version of web-sys cuz that's what wgpu compiles with
web-sys = { version = "=0.3.67", features = [
    "Document",
    "Window",
    "Element",
]}

[features]
default = ["cosmic-text/warn_on_missing_glyphs"]
profile = []
remote-profile = ["dep:puffin_http"]
# enable stuff to operate on web
web = ["dep:getrandom", "getrandom?/js",
  "tracing-subscriber/time", "instant/wasm-bindgen", "cosmic-text/wasm-web", "cosmic-text/no_std",
  "cosmic-text/swash", "poll-promise/web"]
# selects the webgpu backend for wgpu
webgpu = ["wgpu/webgpu"]
# selects the webgl backend for wgpu
webgl = ["wgpu/webgl"]
desktop = ["egui-winit/default", "wgpu/default", "glyphon/default", 
  "tracing-subscriber/env-filter", "dep:pollster"]

# Steal a kira trick to make game run fasterer
[profile.dev.package."*"]
opt-level = 3

[dev-dependencies]
approx = "0.5.1"