2025-12-03 10:19:50 +01:00
|
|
|
The goal is to build kicad with wasm and run it in a browser
|
2026-01-05 11:16:46 +01:00
|
|
|
|
2025-12-03 10:19:50 +01:00
|
|
|
A lot of native module have to be compiled to wasm, the most complex is wxwidgets
|
|
|
|
|
/kicad and /wxwidgets are git submodules from our own forks
|
|
|
|
|
The e2e tests are in /tests, with a README and WHATWORKS md files
|
|
|
|
|
The e2e tests are separated per feature
|
2026-01-05 11:16:46 +01:00
|
|
|
Wxwidgets wasm port has hooks for finding positions of UI elements, tests use that
|
|
|
|
|
The test have screenshots that are tracked with git, use compare-screenshots.sh to see what changed
|
|
|
|
|
Update test images with /scripts/update-baseline-screenshots.sh when a new image is added
|
|
|
|
|
The tests have log files in tests/logs/{wxwidgets/kicad}/{test-name} after each run where the js console and cpp logs are visible
|
Add KiCad WASM build infrastructure and dependency scripts
- Add build environment setup (scripts/common/env.sh, versions.sh, functions.sh)
- Add dependency build scripts for Zstd, GLM, FreeType, HarfBuzz, Pixman, Cairo
- Add placeholder scripts for OpenCASCADE, ngspice, protobuf
- Add WASM compatibility layer (wasm/kiplatform/, wasm/libcontext/)
- Add CMake modules for KiCad WASM cross-compilation
- Add PCBnew test infrastructure (tests/kicad/)
- Add build plan documentation
Successfully tested builds: Zstd 1.5.5, GLM 0.9.9.8, FreeType 2.13.2,
HarfBuzz 8.3.0, Pixman 0.42.2, Cairo 1.18.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04 13:15:04 +01:00
|
|
|
Always check screenshots for validating tests
|
2025-12-03 10:19:50 +01:00
|
|
|
|
2026-01-05 11:16:46 +01:00
|
|
|
Build wxwidgets with scripts/build-wxuniversal-wasm.sh
|
|
|
|
|
Build kicad with docker/build.sh
|
|
|
|
|
Build CPP wxwidgets tests with scripts/builds-wasm-test.sh
|
|
|
|
|
|
|
|
|
|
Don't change the wxwidgets core unless absolutely necessary, try to fix things in the wasm layer.
|
|
|
|
|
Don't change kicad unless absolutely necessary - keep our fork as close to upstream as possible.
|
|
|
|
|
Run scripts/kicad-diff-stats.sh to see how far our KiCad fork has diverged from upstream.
|
|
|
|
|
It's okay to add temporary logging that will be removed for debugging.
|
2025-12-03 10:19:50 +01:00
|
|
|
|
2026-01-05 11:16:46 +01:00
|
|
|
Don't try to guess what's broken , use debug tools / symbols, supported by the build scripts
|