[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 = true
strip = true

[profile.dev]
debug = true
opt-level = 0
lto = true
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 }
epi = { 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.0", default-features = false }
const_format = { version = "0.2.22", default-features = false, features = [
    "fmt",
] }
cfg-if = "1.0.0"
lazy_static = "1.4.0"
tar = "0.4.38"
ruzstd = { git = "https://github.com/KillingSpark/zstd-rs.git", branch = "ringbuffer" }
serde_json = "1.0.79"
tracing = "0.1.34"
itertools = "0.10.3"
static_assertions = "1.1.0"
phf = "0.10.1"

[build-dependencies]
shadow-rs = "0.11.0"
command-run = "1.1.1"
phf_codegen = "0.10.0"
itertools = "0.10.3"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
instant = "0.1.12"
tracing-subscriber = "0.3.11"
rayon = { version = "1.5.2", optional = true }
async-lock = { version = "2.5.0", optional = true }


[target.'cfg(target_arch = "wasm32")'.dependencies]
instant = { version = "0.1.12", features = ["wasm-bindgen"] }
console_error_panic_hook = "0.1.7"
wee_alloc = "0.4.5"
wasm-bindgen = { version = "0.2.80", default-features = false, features = [
    "std",
] }
web-sys = "0.3.57"
tracing-wasm = "0.2.1"

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