From f14ef54528e6bf08d7e37695992f5d9cb4300bfe Mon Sep 17 00:00:00 2001 From: Hakan Seven Date: Mon, 10 Aug 2026 01:22:08 +0300 Subject: [PATCH] fix(build): restore the no-default-features build, and drop lzma-sys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two things the truck removal broke without saying so, both found by auditing what is left in the manifest rather than by anything failing. The cfg gate on `acis_export` ended up on `acad_to_render` instead, when that module was put back after being deleted by mistake. `acad_to_render` is what every entity converts through, so gating it left the wasm build — which is what `--no-default-features` stands in for — unable to resolve it from thirty places. It built at the commit before the migration and builds again now. And deleting TRUCK_CHORD_FRAC took the constant but left its doc comment and its `#[cfg]` behind, so the attribute landed on the next constant down and gated a boundary-sampling tolerance that has nothing to do with solids. lzma-sys was the last dependency in the manifest with nothing using it: no code references it and nothing else in the tree pulls it in. The `solid3d` feature it hung off still gates four places, so the feature stays. Everything else declared is used. `getrandom` and `iced_widget` look unused by grep and are not — the first is declared to turn on the feature the wasm target needs from a crate half the tree pulls in, and the second is a `[patch]` entry rather than a dependency at all. Co-Authored-By: Claude Opus 5 --- Cargo.lock | 12 ------------ Cargo.toml | 3 +-- src/scene/convert/mod.rs | 2 +- src/scene/convert/solid3d_tess.rs | 7 ------- 4 files changed, 2 insertions(+), 22 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c7762b135..c013241c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -29,7 +29,6 @@ dependencies = [ "js-sys", "log", "lyon_tessellation", - "lzma-sys", "naga 27.0.3", "ocs_plugin_api", "open", @@ -3047,17 +3046,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "lzma-sys" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fda04ab3764e6cde78b9974eec4f779acaba7c4e84b36eca3cf77c581b85d27" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - [[package]] name = "maybe-rayon" version = "0.1.1" diff --git a/Cargo.toml b/Cargo.toml index f331b842d..f078a1ea8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,13 +17,12 @@ winresource = "0.1" [features] default = ["solid3d"] -solid3d = ["dep:lzma-sys"] +solid3d = [] [dependencies] serde_json = "1" serde = { version = "1", features = ["derive"] } semver = "1" -lzma-sys = { version = "0.1", features = ["static"], optional = true } iced = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39", features = ["image", "svg", "advanced", "canvas", "smol", "markdown"] } iced_core = { git = "https://github.com/iced-rs/iced.git", rev = "23604ff22ab0aad9e00b9327cb7b8546ed84db39" } iced_aw = { git = "https://github.com/HakanSeven12/iced_aw.git", branch = "agent/fix-iced-fonts", features = ["menu", "context_menu", "color_picker", "drop_down"] } diff --git a/src/scene/convert/mod.rs b/src/scene/convert/mod.rs index a0e7aa75b..4e216f97c 100644 --- a/src/scene/convert/mod.rs +++ b/src/scene/convert/mod.rs @@ -1,5 +1,5 @@ -#[cfg(feature = "solid3d")] pub mod acad_to_render; +#[cfg(feature = "solid3d")] pub mod acis_export; pub mod acis_kernel; pub mod dgn_linestyle; diff --git a/src/scene/convert/solid3d_tess.rs b/src/scene/convert/solid3d_tess.rs index 29b132309..20652e6f4 100644 --- a/src/scene/convert/solid3d_tess.rs +++ b/src/scene/convert/solid3d_tess.rs @@ -39,13 +39,6 @@ use crate::scene::model::mesh_model::{MeshLodSet, MeshModel}; /// fraction of the curve radius sets their sampling density (~0.002 ⇒ ~50 /// segments per full circle). pub(crate) const EDGE_CHORD_FRAC: f64 = 0.002; -/// The triangulation chord tolerance for the cone faces still routed -/// through its kernel, as a fraction of the surface radius. Matches -/// [`LodConfig::HIGH`]: the kernel emits a single mesh rather than an LOD ladder, so -/// it has to be the detailed one. A coarse fraction here turns a wide pipe into -/// a hexagonal prism whose flats sink far inside the true radius, tearing the -/// wall away from the planar faces and caps that meet it. -#[cfg(feature = "solid3d")] /// Boundary-loop sampling for parameter-range classification (which arc of a /// sphere/torus a face covers): a fine fraction so the classification is /// accurate; the points are not rendered.