pcbjam/scripts
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Istvan Matejcsok bbeef6d20e feat(wasm): kicad_editor — merge the pcbnew+eeschema kifaces into ONE bundle (Part 2)
All four editors (PCB / Footprint / Schematic / Symbol) are now runtime --frame
choices of a single kicad_editor.wasm (178 MB at -O1 vs 147+82 separate; shared
wx/common/boost linked once). One editor per page load, as before; frames pcb /
fpedit / sch / symedit.

- wasm/editor/: the merged executable target (single_top + both kiface library sets,
  whole-archive pcbcommon) + the safety-net focus-walk Kiface() dispatch TU. Gated by
  KICAD_WASM_MERGED_EDITOR (kicad submodule bump carries the fork side: per-engine
  Kiface/getter binding + ODR renames + dual-kiface launcher).
- wasm/bindings/: per-editor collab entries renamed pcbCollab*/schCollab* (JS names
  unchanged); duplicate kicadOpenFile/kicadCollabOnSave + shared-name registrations
  guarded behind KICAD_MERGED_EMBIND; new kicad_editor_embind.cpp registers each
  shared JS name once, dispatching on the live frame.
- Build: kicad_editor app (build wrapper, target case arms, 3-object embind compile
  with the ABI-critical flags, STUB_APP=pcbnew); docker/build.sh "all" =
  kicad_editor calculator pl_editor gerbview (pcbnew/eeschema stay as explicit debug
  apps); scripts/kicad/audit-merged-symbols.sh = repeatable ODR-collision audit (run
  on kicad bumps).
- Frontend: Bundle type (bundle ≠ tool); TOOL_BUNDLE maps all four editors to
  kicad_editor; explicit --frame tokens for pcbnew (pcb) and eeschema (sch); publish
  list = the 4 real bundles.
- Tests/CI: five harnesses load kicad_editor.js with explicit frame tokens;
  PCBNEW_FAMILY_SPECS renamed BIG_MODULE_SPECS + the 8 eeschema-family specs (they
  now boot the merged module — SpiderMonkey x86 CI OOM routing); frame-runtime spec
  covers all four frames from the one bundle.

Validated so far: frame-runtime 4/4 (each frame boots with the right title, no
aborts, no duplicate embind registration); 24-spec merged-module regression green;
3D raytracer renders. Known pre-existing failure: 3d-viewer title-bar drag deadlock,
fixed on main by 7630c7e (2N+8 pthread pre-warm) — picked up by the follow-up rebase.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 17:56:02 +02:00
..
bench bench: wasm-opt benchmark harness — Hetzner config sweeps + local QEMU VM 2026-06-11 07:48:46 +02:00
binaryen-hoist-pass fix(ci): binaryen tools cache also needs lib/ — bin-only restore broke every post-process 2026-07-02 14:29:20 +02:00
common build(wasm): standardize asyncify wasm-opt tail to -O1 everywhere 2026-07-01 12:18:57 +02:00
config Add autom4te wrapper to keep submodules clean 2025-12-27 09:21:31 +01:00
deploy feat(wasm): kicad_editor — merge the pcbnew+eeschema kifaces into ONE bundle (Part 2) 2026-07-02 17:56:02 +02:00
deps feat(wasm-eh): migrate the WASM build to native wasm exceptions (+ 3D viewer default-on) 2026-06-30 09:40:26 +02:00
git-workflow chore: add binaryen submodule to git-workflow 2026-06-30 10:06:34 +02:00
kicad feat(wasm): kicad_editor — merge the pcbnew+eeschema kifaces into ONE bundle (Part 2) 2026-07-02 17:56:02 +02:00
build-gal-native-test.sh feat(webgl): Add GAL native test harness for visual regression testing 2026-01-07 09:42:31 +01:00
build-gal-webgl-test.sh perf(build): use all cores in host builds — wx lib, test apps, gal-webgl 2026-07-02 10:54:14 +02:00
build-monitor.sh fix(wasm-eh): build wasm-emscripten-finalize from the Binaryen submodule (unbreak CI) 2026-06-30 11:55:52 +02:00
build-wasm-test.sh perf(build): use all cores in host builds — wx lib, test apps, gal-webgl 2026-07-02 10:54:14 +02:00
build-wx-wasm.sh perf(build): use all cores in host builds — wx lib, test apps, gal-webgl 2026-07-02 10:54:14 +02:00
create-feature-patches.sh feat(schematic): eeschema WASM build + e2e harness 2026-05-29 16:01:17 +02:00
kicad-diff-stats.sh chore: 🔧 fork-cleanup tooling + bump kicad submodule 2026-06-22 12:17:46 +02:00
setup-emsdk.sh fix(wasm): Fix asyncify rewind with asyncify-aware dynCall shims 2026-03-13 12:26:48 +01:00
setup-worktree.sh chore: 🤖 add new worktree setup script 2026-06-16 14:46:18 +02:00
test-gal-regression.sh refactor(webgl): Move WebGL GAL from test harness to KiCad source tree 2026-01-10 13:15:58 +01:00
test-gal-webgl.sh refactor(webgl): Move WebGL GAL from test harness to KiCad source tree 2026-01-10 13:15:58 +01:00