[workspace] resolver = "3" members = ["crates/*", "apps/*", "xtask"] [workspace.package] version = "0.1.0" edition = "2024" license = "MIT OR Apache-2.0" rust-version = "1.95" authors = ["ModelCraft contributors"] repository = "https://github.com/jyviko/modelcraft" [workspace.dependencies] # internal modelcraft-model = { path = "crates/model" } modelcraft-geometry = { path = "crates/geometry" } modelcraft-engine = { path = "crates/engine" } # foundation thiserror = "2" serde = { version = "1", features = ["derive"] } serde_json = { version = "1", features = ["float_roundtrip"] } log = "0.4" # Geometry: SolidCraft's B-rep kernel (MIT OR Apache-2.0), pinned. Only crates/geometry uses it # (plan/adr/0001-libraries.md). solidcraft-geom = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" } solidcraft-kernel = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" } [workspace.lints.rust] unsafe_code = "forbid" [workspace.lints.clippy] dbg_macro = "warn" todo = "warn" too_many_arguments = "allow" type_complexity = "allow" # `!(x > tol)` is our idiom for "not a usable number" (NaN-safe). neg_cmp_op_on_partial_ord = "allow" [profile.dev.package."*"] opt-level = 2 [profile.dev] opt-level = 1 # Tests and lints (`cargo xtask ci`, GitHub CI). Debug assertions are off because truck's # debug-only checks reject valid geometry (SolidCraft builds its tests the same way). [profile.ci] inherits = "dev" opt-level = 1 debug = "line-tables-only" debug-assertions = false overflow-checks = true incremental = false [profile.ci.package."*"] opt-level = 2 [profile.release] opt-level = 3 lto = "thin" codegen-units = 16 debug = "line-tables-only" # SolidCraft builds truck with local fixes (its vendor/ directory). Patches don't reach a # dependent workspace, so ModelCraft applies the same ones from the same pinned commit; keep this # list and the rev in step with SolidCraft's [patch.crates-io]. [patch.crates-io] truck-shapeops = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" } truck-stepio = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" } truck-meshalgo = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" } matext4cgmath = { git = "https://github.com/bherbruck/solidcraft", rev = "de1479029dd6821cffd28b70688a58e7f61f0cfd" }