forked from 1b-agent/fieldcraft-upstream
Bumps [pollster](https://github.com/zesterer/pollster) from 0.4.0 to 1.0.1. - [Changelog](https://github.com/zesterer/pollster/blob/master/CHANGELOG.md) - [Commits](https://github.com/zesterer/pollster/commits) --- updated-dependencies: - dependency-name: pollster dependency-version: 1.0.1 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
143 lines
5.6 KiB
TOML
143 lines
5.6 KiB
TOML
[workspace]
|
|
resolver = "3"
|
|
members = ["crates/*", "apps/*", "xtask"]
|
|
|
|
[workspace.package]
|
|
version = "0.6.0"
|
|
edition = "2024"
|
|
license = "MIT OR Apache-2.0"
|
|
rust-version = "1.95"
|
|
authors = ["FieldCraft contributors"]
|
|
repository = "https://github.com/tangency-labs/fieldcraft"
|
|
|
|
[workspace.dependencies]
|
|
# internal
|
|
fieldcraft-model = { path = "crates/model" }
|
|
fieldcraft-parallel = { path = "crates/parallel" }
|
|
fieldcraft-geometry = { path = "crates/geometry" }
|
|
fieldcraft-mesh = { path = "crates/mesh" }
|
|
fieldcraft-decks = { path = "crates/decks" }
|
|
fieldcraft-io = { path = "crates/io" }
|
|
fieldcraft-fem = { path = "crates/fem" }
|
|
fieldcraft-solver = { path = "crates/solver" }
|
|
fieldcraft-explicit = { path = "crates/explicit" }
|
|
fieldcraft-lbm = { path = "crates/lbm" }
|
|
fieldcraft-engine = { path = "crates/engine" }
|
|
fieldcraft-testkit = { path = "crates/testkit" }
|
|
fieldcraft-render = { path = "crates/render" }
|
|
fieldcraft-ui-egui = { path = "crates/ui-egui" }
|
|
fieldcraft-mcp = { path = "crates/mcp" }
|
|
fieldcraft-update = { path = "crates/update" }
|
|
fieldcraft-gpu = { path = "crates/gpu" }
|
|
|
|
# foundation
|
|
thiserror = "2"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = { version = "1", features = ["float_roundtrip"] }
|
|
log = "0.4"
|
|
|
|
# 3MF packages (docs/formats/tagged-mesh.md). zip is ahead of SolidCraft (still on 3), so both are built.
|
|
zip = { version = "9", default-features = false, features = ["deflate"] }
|
|
quick-xml = "0.42"
|
|
|
|
# content hashes and part checksums of .fieldcraft files (the version SolidCraft uses)
|
|
sha2 = "0.11"
|
|
|
|
# images (PNG snapshots and screenshots)
|
|
png = "0.18"
|
|
# SVG toolbar icons rasterised in the UI (no text, fonts or raster images in icons)
|
|
resvg = { version = "0.48", default-features = false }
|
|
|
|
# ui: the same egui/eframe/egui-wgpu line as SolidCraft
|
|
egui = "0.36"
|
|
eframe = { version = "0.36", default-features = false }
|
|
egui-wgpu = "0.36"
|
|
# the wgpu egui-wgpu uses, for the offscreen viewport (crates/gpu); backends come per target there
|
|
wgpu = { version = "30", default-features = false, features = ["std", "wgsl"] }
|
|
pollster = "1.0"
|
|
# Shared Craft-family egui components (icon buttons, tabs, widget palette); the same rev as
|
|
# VectorCraft. MIT OR Apache-2.0.
|
|
craft-ui = { git = "https://github.com/storytold/craft-libs", rev = "5c874d51eeb3de70e735c8ce87a59a7dedd47675" }
|
|
# native file pickers (the desktop app only; the UI crate takes them as services)
|
|
rfd = "0.17"
|
|
|
|
# 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 = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
solidcraft-kernel = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
solidcraft-doc = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
solidcraft-io = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
# Runs SolidCraft command scripts (the test corpus recipes); only behind fieldcraft-geometry's
|
|
# `scripts` feature.
|
|
solidcraft-engine = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
|
|
[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
|
|
|
|
# The lattice Boltzmann kernels are compute loops over millions of cells; their verification
|
|
# runs (tests) need them optimised.
|
|
[profile.dev.package.fieldcraft-lbm]
|
|
opt-level = 3
|
|
|
|
# Meshing and the sparse solver are compute loops too: the tet quality stage and the
|
|
# mesh-convergence oracle cases (tests/oracle) run in tests.
|
|
[profile.dev.package.fieldcraft-mesh]
|
|
opt-level = 3
|
|
|
|
[profile.dev.package.fieldcraft-solver]
|
|
opt-level = 3
|
|
|
|
# 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.ci.package.fieldcraft-lbm]
|
|
opt-level = 3
|
|
|
|
[profile.ci.package.fieldcraft-mesh]
|
|
opt-level = 3
|
|
|
|
[profile.ci.package.fieldcraft-solver]
|
|
opt-level = 3
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = "thin"
|
|
codegen-units = 16
|
|
debug = "line-tables-only"
|
|
|
|
# SolidCraft builds truck and egui-wgpu with local fixes (its vendor/ directory). Patches don't
|
|
# reach a dependent workspace, so FieldCraft 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 = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
truck-stepio = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
truck-meshalgo = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
matext4cgmath = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|
|
# egui-wgpu with SolidCraft's fixes (vendor/egui-wgpu there): MSAA clamped to what the device
|
|
# supports and 1x on OpenGL adapters, so the requested 4x never fails pipeline validation at start.
|
|
egui-wgpu = { git = "https://github.com/bherbruck/solidcraft", rev = "b1695873f5d0031f51a8d5e7ec036fced6f000e2" }
|