- 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>
1.3 KiB
The goal is to build kicad with wasm and run it in a browser The original research docs are in /docs 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 The tests depend on canvas, there's an app to find button positions, use that, don't find buttons by estimating pixels The test have screenshots that are tracked with git, use compare-screenshots.sh to see what changed, update them when a new image is added The tests have log files after each run where the js console and cpp logs are visible Always check screenshots for validating tests
Our current goal is to test every wxwidgets feature kicad uses, write the wasm layer and e2e tests, documented in WHATWORKS Never run builds manually, we have scripts that run the builds in the /scripts folder Build wxwidgets and tests with scripts, not manually Don't change the wxwidgets core unless absolutely necessary, try to fix things in the wasm layer Don't try to guess what's broken in wxwidgets, use debug tools / symbols, supported by the build script
Next up
porting kicad, with most of the dependencies shimmed out and load it in a browser