[workspace]
resolver = "2"
members = [
    "blade-asset",
    "blade-egui",
    "blade-graphics",
    "blade-helpers",
    "blade-macros",
    "blade-render",
    "run-wasm",
]
exclude = []

[workspace.dependencies]
base64 = "0.21"
bitflags = "2"
bytemuck = { version = "1", features = ["derive"] }
choir = "0.7"
egui = "0.29"
glam = { version = "0.28", features = ["mint"] }
gltf = { version = "1.1", default-features = false }
log = "0.4"
mint = "0.5"
# Needed for https://github.com/gfx-rs/wgpu/pull/7047
naga = { git = "https://github.com/gfx-rs/wgpu", rev = "0f111cb27c3a06ac15325791212b9d4139d7eaa3", features = ["wgsl-in"] }
profiling = "1"
slab = "0.4"
strum = { version = "0.26", features = ["derive"] }
web-sys = "0.3.60"
winit = { version = "0.30" }

[lib]

[package]
name = "blade"
description = "Sharp and simple graphics library"
version = "0.3.0"
edition = "2021"
rust-version = "1.65"
keywords = ["graphics"]
license = "MIT"
repository = "https://github.com/kvark/blade"
readme = "docs/README.md"

[features]

[dependencies]
blade-asset = { version = "0.2", path = "blade-asset" }
blade-egui = { version = "0.6", path = "blade-egui" }
blade-graphics = { version = "0.6", path = "blade-graphics" }
blade-helpers = { version = "0.1", path = "blade-helpers" }
blade-util = { version = "0.2", path = "blade-util" }
base64 = { workspace = true }
choir = { workspace = true }
colorsys = "0.6"
egui = { workspace = true }
gltf = { workspace = true }
nalgebra = { version = "0.33", features = ["mint"] }
log = { workspace = true }
mint = { workspace = true, features = ["serde"] }
num_cpus = "1"
profiling = { workspace = true }
rapier3d = { version = "0.23", features = ["debug-render"] }
serde = { version = "1", features = ["serde_derive"] }
slab = "0.4"
winit = { workspace = true }

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
blade-render = { version = "0.4", path = "blade-render" }

[dev-dependencies]
blade-macros = { version = "0.3", path = "blade-macros" }
bytemuck = { workspace = true }
choir = { workspace = true }
egui = { workspace = true }
egui-winit = { version="0.29", default-features=false, features=["links"] }
transform-gizmo-egui = { git = "https://github.com/urholaukkarinen/transform-gizmo", rev = "7556fb38b37f3772c57dd0fae6a276976d314f9b" }
env_logger = "0.11"
glam = { workspace = true }
log = { workspace = true }
mint = { workspace = true, features = ["serde"] }
naga = { workspace = true }
nanorand = { version = "0.7", default-features = false, features = ["wyrand"] }
profiling = { workspace = true }
ron = "0.8"
serde = { version = "1", features = ["serde_derive"] }
strum = { workspace = true }
# not following semver :(
del-msh-core = "=0.1.33"
del-geo = "=0.1.29"

[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
console_error_panic_hook = "0.1.7"
console_log = "1"
web-sys = { workspace = true, features = ["Window"] }
getrandom = { version = "0.2", features = ["js"] }

[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dev-dependencies]
renderdoc = "0.12"

# This is too slow in Debug
[profile.dev.package.texpresso]
opt-level = 3

[package.metadata.cargo_check_external_types]
#TODO: reconsider `egui`/`epaint` and `winit` here
allowed_external_types = [
    "egui::*",
    "epaint::*",
    "mint::*",
    "profiling::*",
    "serde::*",
    "winit::*",
]

[lints.rust]
unexpected_cfgs = { level = "allow", check-cfg = ['cfg(gles)'] }