forked from 1b-agent/opencadstudio-upstream
build(web): restore the wasm build — gate native-only deps off wasm
The web build had bit-rotted: native-only features added since it last compiled pulled crates that don't build for wasm32-unknown-unknown. - printpdf (PDF export / printing) → native-only target; the web build gets stub export_pdf / print_wires. It pulls a wasm-incompatible memchr 1.0.2 via lopdf → nom_locate, and the web has no filesystem. - getrandom 0.3 (via ahash via acadrust) → enable its wasm_js feature and add the matching --cfg getrandom_backend rustflag in .cargo/config.toml. - ocs_plugin_api "host" feature (out-of-process plugin runtime: interprocess, libloading, memmap2, rkyv) → native-only target; the web gets the dependency-free manifest/ribbon contract. The host code was already wasm-gated; only the Cargo wiring pulled it in unconditionally. `trunk build --release` succeeds again. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
8b1e37e0da
commit
44fa9df278
5 files changed
+75
-3
No files matched your search
@@ -7,15 +7,34 @@
|
||||
//
|
||||
// The function is async so the UI remains responsive while the job is queued.
|
||||
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
use crate::io::pdf_export;
|
||||
use crate::io::plot_style::PlotStyleTable;
|
||||
use crate::scene::model::hatch_model::HatchModel;
|
||||
use crate::scene::WireModel;
|
||||
|
||||
// Printing routes through the native PDF pipeline + the OS print command, so it
|
||||
// is native-only; the web build gets a stub so the call site still compiles.
|
||||
#[cfg(target_arch = "wasm32")]
|
||||
pub async fn print_wires(
|
||||
_wires: Vec<WireModel>,
|
||||
_hatches: Vec<HatchModel>,
|
||||
_wipeouts: Vec<HatchModel>,
|
||||
_paper_w: f64,
|
||||
_paper_h: f64,
|
||||
_offset_x: f32,
|
||||
_offset_y: f32,
|
||||
_rotation_deg: i32,
|
||||
_plot_style: Option<PlotStyleTable>,
|
||||
) -> Result<String, String> {
|
||||
Err("Printing is not available in the web version.".into())
|
||||
}
|
||||
|
||||
/// Render `wires` (plus hatch / wipeout fills) to a temp PDF and dispatch it
|
||||
/// to the default system printer.
|
||||
///
|
||||
/// Returns `Ok(printer_name)` on success or `Err(message)` on failure.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
pub async fn print_wires(
|
||||
wires: Vec<WireModel>,
|
||||
hatches: Vec<HatchModel>,
|
||||
@@ -47,6 +66,7 @@ pub async fn print_wires(
|
||||
}
|
||||
|
||||
/// Platform-specific dispatch of a PDF path to the system printer.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
fn dispatch_to_printer(path: &std::path::Path) -> Result<String, String> {
|
||||
#[cfg(target_os = "windows")]
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user