[package] name = "ytbn_graphing_software" version = "0.1.0" edition = "2024" license = "AGPL-3.0" repository = "https://github.com/Titaniumtown/YTBN-Graphing-Software" description = "Crossplatform (and web-compatible) graphing calculator" [lib] crate-type = ["cdylib", "rlib"] [features] # Enable x11/wayland support for running tests on native targets native-test = ["eframe/x11", "eframe/wayland"] [profile.release] debug = false codegen-units = 1 opt-level = "z" #optimize for size lto = "fat" strip = true panic = "abort" [profile.dev] debug = true codegen-units = 8 opt-level = 0 lto = false 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, features = [ "glow", ] } egui = { git = "https://github.com/titaniumtown/egui.git", default-features = false, features = [ "serde", ] } epaint = { git = "https://github.com/titaniumtown/egui.git", default-features = false , features = [ "bytemuck", ] } emath = { git = "https://github.com/titaniumtown/egui.git", default-features = false } egui_plot = { git = "https://github.com/emilk/egui_plot.git", default-features = false } shadow-rs = { version = "0.12", default-features = false } const_format = { version = "0.2", default-features = false, features = ["fmt"] } cfg-if = "1" ruzstd = "0.5" tracing = "0.1" itertools = "0.10" static_assertions = "1.1" bincode = "1.3" serde = "1" base64 = "0.21" [dev-dependencies] benchmarks = { path = "./benchmarks" } [build-dependencies] shadow-rs = "0.12" epaint = { git = "https://github.com/titaniumtown/egui.git", default-features = false, features = [ "bytemuck", ] } egui = { git = "https://github.com/titaniumtown/egui.git", default-features = false, features = [ "serde", ] } bincode = "1.3" serde = "1" serde_json = "1" zstd = { version = "0.11", default-features = false, features = ["pkg-config"] } run_script = "0.9" json5 = "0.4" itertools = "0.10" [target.'cfg(not(target_arch = "wasm32"))'.dependencies] instant = "0.1" tracing-subscriber = "0.3" getrandom = { version = "0.2" } [target.'cfg(target_arch = "wasm32")'.dependencies] instant = { version = "0.1", features = ["wasm-bindgen"] } lol_alloc = "0.4.0" wasm-bindgen = { version = "0.2", default-features = false, features = ["std"] } web-sys = "0.3" tracing-wasm = "0.2" getrandom = { version = "0.2", features = ["js"] } # pinned to 0.4.54 in order to be compatible with nixos's wasm-bindgen-cli version wasm-bindgen-futures = "=0.4.54" [package.metadata.cargo-all-features] skip_optional_dependencies = true #don't test optional dependencies, only features # various dependency patches fix issues with nix complication such as: # ```` # ln: failed to create symbolic link '/nix/store/plh3y4gfxgwcacjccv72f551y1k89x75-cargo-vendor-dir/ecolor-0.33.2/qb43vsx43av6kf4h9y4bsmisvbjlcxd1-ecolor-0.33.2': Permission denied # ```` [patch."https://github.com/emilk/egui_plot.git"] egui = { git = "https://github.com/titaniumtown/egui.git" } eframe = { git = "https://github.com/titaniumtown/egui.git" } epaint = { git = "https://github.com/titaniumtown/egui.git" } emath = { git = "https://github.com/titaniumtown/egui.git" } ecolor = { git = "https://github.com/titaniumtown/egui.git" } [patch.crates-io] egui = { git = "https://github.com/titaniumtown/egui.git" } eframe = { git = "https://github.com/titaniumtown/egui.git" } epaint = { git = "https://github.com/titaniumtown/egui.git" } emath = { git = "https://github.com/titaniumtown/egui.git" } ecolor = { git = "https://github.com/titaniumtown/egui.git" }