fix(wasm-edge): gate ghost_hunter bin behind standalone-bin feature
The standalone ghost_hunter binary defines its own on_init/on_frame/on_timer WASM3 entry-points; the lib also exports those when default-pipeline is on. A vanilla `cargo build -p wifi-densepose-wasm-edge --target wasm32-unknown-unknown --release` would build both, producing a "Linking globals named 'on_frame': symbol multiply defined!" error. Fix: declare an explicit `[[bin]] required-features = ["standalone-bin"]` gate so the bin only builds when the user opts in with `--no-default-features --features standalone-bin`. The default feature set continues to produce the combined-pipeline lib (15 KB wasm32). Validation: - cargo build -p wifi-densepose-wasm-edge --target wasm32-unknown-unknown --release → 15 KB wifi_densepose_wasm_edge.wasm (default-pipeline lib) - cargo build -p wifi-densepose-wasm-edge --bin ghost_hunter --target wasm32-unknown-unknown --release --no-default-features --features standalone-bin → 5.8 KB ghost_hunter.wasm (standalone module) - cd v2/crates/wifi-densepose-wasm-edge && cargo test --features std --no-default-features → 75/75 tests pass Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
parent
21ad10e8d8
commit
6fe405a5f7
|
|
@ -25,6 +25,18 @@ std = ["sha2/std"]
|
|||
# Include the default combined pipeline (gesture+coherence+adversarial) entry points.
|
||||
# Disable this when building standalone module binaries (ghost_hunter, etc.)
|
||||
default-pipeline = []
|
||||
# Build the standalone-bin Ghost Hunter target. Required because that binary
|
||||
# defines its own on_init / on_frame / on_timer entry points which would
|
||||
# collide with the lib's `default-pipeline` exports. Build with:
|
||||
# cargo build -p wifi-densepose-wasm-edge --bin ghost_hunter \
|
||||
# --target wasm32-unknown-unknown --release \
|
||||
# --no-default-features --features standalone-bin
|
||||
standalone-bin = []
|
||||
|
||||
[[bin]]
|
||||
name = "ghost_hunter"
|
||||
path = "src/bin/ghost_hunter.rs"
|
||||
required-features = ["standalone-bin"]
|
||||
|
||||
[profile.release]
|
||||
opt-level = "s" # Optimize for size
|
||||
|
|
|
|||
Loading…
Reference in New Issue