Conversation
Mirrors the split DSP/UI wasm build that was added upstream in iPlug2 da6112de. Adds the three makefiles (config + dsp + ui project) and the makedist-wasm.sh driver adapted for the iPlug2OOS layout, bumps the submodule so common-wasm.mk and the TemplateWasm HTML/JS templates are available, and teaches duplicate.py to recurse into build-web-wasm/.
Code Review: Add WASM target support to TemplateProjectGood addition that mirrors the upstream split DSP/UI WASM build. The overall structure is solid and consistent with the existing
|
| Area | Status |
|---|---|
| Overall structure | ✅ Mirrors upstream correctly |
duplicate.py |
✅ Correct |
| Submodule bump | ✅ Appropriate |
| Script error handling | set -euo pipefail, unquoted vars |
| Makefile recipe | $(OBJECTS) dependency vs $(SRC) recipe — clarify intent |
| Debug builds | |
| Minor nits | ℹ️ --makefile → -f, double IPLUG2_ROOT assignment, .bak cleanup |
The core logic is sound — the main ask is hardening the shell script defensively before this ships as a template that new projects will copy verbatim.
- set -euo pipefail, quote paths, guard optional $1/$2
- drop duplicate IPLUG2_ROOT assignment
- switch .bak cleanup to a unique suffix so we only remove files we created
- require EMSDK via ${EMSDK:?}
- emmake: --makefile -> -f, replace post-hoc $? checks with ||{ exit }
- explain the https://localhost/ AudioWorklet shim
- mk: target depends on $(SRC) (was $(OBJECTS), which common-wasm.mk leaves empty)
|
placeholder |
Code Review: Add WASM target support to TemplateProjectOverviewThis PR mirrors the split DSP/UI WASM build architecture from upstream iPlug2 ( IssuesHigh PriorityShell glob expansion in The python3 "$FILE_PACKAGER" fonts.data --preload ./resources/fonts/ --exclude '*DS_Store' --js-output=./fonts.jsAll four Fragile With (cd build-web-wasm && python3 "$FILE_PACKAGER" imgs@2x.data ... && rm -r ./2x)Medium Priority
A config.h containing if grep -qE '^[[:space:]]*#define PLUG_HAS_UI[[:space:]]+1' "$PROJECT_ROOT/config.h" 2>/dev/null; thenThe same fix applies to Unquoted path variables in The destination paths in No Both Low Priority / SuggestionsAudioWorklet The comment explaining the AudioWorklet scope constraint is helpful. Consider expanding it to note that
Redundant error handlers with The What's Good
Overall this is solid work that closely mirrors the upstream pattern and adapts it cleanly to the OOS layout. The shell glob expansion bug in the |
Mirrors the split DSP/UI wasm build that was added upstream in iPlug2 da6112de.
Adds the three makefiles (config + dsp + ui project) and the makedist-wasm.sh driver adapted for the iPlug2OOS layout, bumps the submodule so common-wasm.mk and the TemplateWasm HTML/JS templates are available, and teaches duplicate.py to recurse into build-web-wasm/.