[package]
name = "ytbn_graphing_software"
version = "0.1.0"
edition = "2021"
license = "AGPL-3.0"
repository = "https://github.com/Titaniumtown/YTBN-Graphing-Software"
description = "Crossplatform (and web-compatible) graphing calculator"

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

[features]
threading = ["async-lock", "rayon"]

[profile.release]
debug = false
codegen-units = 1
opt-level = "z"   #optimize for size
#lto = "fat"       #causes issues with wasm, disabling for the time being
strip = false
panic = "abort"

[profile.dev]
debug = true
codegen-units = 8
opt-level = 0
lto = "thin"
strip = false

[profile.bench]
debug = true
codegen-units = 1
opt-level = 3
lto = "thin"
strip = false

[dependencies]
parsing = { path = "./parsing" }
eframe = { git = "https://github.com/Titaniumtown/egui.git", default-features = false }
egui = { git = "https://github.com/Titaniumtown/egui.git", default-features = false }
epaint = { git = "https://github.com/Titaniumtown/egui.git", default-features = false }
emath = { git = "https://github.com/Titaniumtown/egui.git", default-features = false }

shadow-rs = { version = "0.11", default-features = false }
const_format = { version = "0.2", default-features = false, features = ["fmt"] }
cfg-if = "1"
lazy_static = "1"
tar = "0.4"
ruzstd = { git = "https://github.com/Titaniumtown/zstd-rs.git", branch = "ringbuffer" }
serde_json = "1.0"
tracing = "0.1"
itertools = "0.10"
static_assertions = "1.1"
phf = "0.10"
uuid = { version = "1", features = ["v4", "fast-rng", "js"] }

[dev-dependencies]
benchmarks = { path = "./benchmarks" }

[build-dependencies]
shadow-rs = "0.11"
command-run = "1.1"
phf_codegen = "0.10"
itertools = "0.10"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
instant = "0.1"
tracing-subscriber = "0.3"
rayon = { version = "1.5", optional = true }
async-lock = { version = "2.5", optional = true }


[target.'cfg(target_arch = "wasm32")'.dependencies]
instant = { version = "0.1", features = ["wasm-bindgen"] }
console_error_panic_hook = "0.1"
wee_alloc = "0.4"
wasm-bindgen = { version = "0.2", default-features = false, features = ["std"] }
web-sys = "0.3"
tracing-wasm = "0.2"

[package.metadata.cargo-all-features]
skip_optional_dependencies = true #don't test optional dependencies, only features
