content: [package]
  name = "halfspace"
  version = "0.1.0"
  edition = "2024"
  license = "MPL-2.0"
  repository = "https://github.com/mkeeter/halfspace"
  description = "An experimental CAD tool"
  authors = ["Matt Keeter <matt.j.keeter@gmail.com"]
  readme = "README.md"
  rust-version = "1.88"
  
  [profile.dev]
  panic = 'abort'
  
  [profile.release]
  panic = 'abort'
  debug = true
  overflow-checks = true
  
  [dependencies]
  anyhow = "1.0.98"
  bincode = { version = "2", features = ["serde"] }
  bitflags = "2.9.1"
  eframe = { version = "0.31.1", default-features = false, features = ["wgpu", "accesskit", "wayland", "web_screen_reader", "x11"] }
  egui = "0.31.1"
  egui-wgpu = { version = "0.31.1" }
  egui_dnd = "0.12.0"
  egui_dock = { git = "https://github.com/mkeeter/egui_dock", features = ["serde"], branch = "next" }
  egui_extras = { git = "https://github.com/mkeeter/egui", features = ["syntect"], branch = "custom-syntect-settings-0.31.1-backport" }
  facet = "0.27.14"
  fidget = { git = "https://github.com/mkeeter/fidget" }
  git-version = "0.3.9"
  heck = "0.5"
  image = { version = "0.25", default-features = false, features = ["png"] }
  log = "0.4.27"
  nalgebra = "0.34"
  nonempty = "0.12.0"
  palette = "0.7.6"
  pollster = "0.4.0"
  rayon = "1.10.0"
  rfd = "0.15.3"
  serde = "1"
  serde_json = "1.0.140"
  strum = { version = "0.27.1", features = ["derive"] }
  syntect = { version = "5.2.0", default-features = false, features = ["default-fancy"] }
  thiserror = "2.0.12"
  tokio = { version = "1.46.1", features = ["sync"] }
  web-time = "1.1.0"
  zerocopy = { version = "0.8.25", features = ["derive"] }
  
  [build-dependencies]
  bincode = { version = "2", features = ["serde"] }
  syntect = "5.2.0"
  
  # Desktop dependencies
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
  clap = "4.5.39"
  env_logger = "0.11.8"
  rhai = { version = "1.21", features = ["sync", "internals"] }
  
  # Web-only dependencies
  [target.'cfg(target_arch = "wasm32")'.dependencies]
  js-sys = "0.3.77"
  rhai = { version = "1.21", features = ["sync", "internals", "wasm-bindgen"] }
  wasm-bindgen = "0.2.100"
  wasm-bindgen-futures = "0.4.50"
  wasm-bindgen-rayon = { version = "1.3", features = ["no-bundler"] }
  web-sys = { version = "0.3.70", features = ["WorkerGlobalScope", "Performance", "UrlSearchParams", "Text"] }
  
  # Feature unification hacks to get webassembly working
  getrandom-03 = { package = "getrandom", version = "0.3", features = ["wasm_js"] }
  getrandom-02 = { package = "getrandom", version = "0.2", features = ["js"] }
  
  [features]
  deadlock_detection = ["egui/deadlock_detection"]
  jit = ["fidget/jit"]
  default = ["jit"]
  
  [patch.crates-io]
  egui = { git = "https://github.com/mkeeter/egui", branch = "custom-syntect-settings-0.31.1-backport" }
  epaint = { git = "https://github.com/mkeeter/egui", branch = "custom-syntect-settings-0.31.1-backport" }
  
  # Optimize dependencies (mostly Fidget) even in debug builds
  [profile.dev.package."*"]
  opt-level = 1
  
  [lib]
  crate-type = ["cdylib", "rlib"]
  