Add KiCad PCBnew WASM build support and documentation

Build infrastructure:
- Update build-pcbnew.sh with stub library compilation
- Update build-wxuniversal-wasm.sh with library symlinks and stubs
- Add stub libraries for libgit2 and curl (network ops via JS)
- Add WASM-specific CMake Find modules

Documentation:
- Add KICAD_WASM_BUILD.md with complete modification list
- Document 68 KiCad files modified for WASM support
- Document disabled features and reasons
- Document stub libraries and wxWidgets changes

Submodule updates:
- kicad: Add WASM/Emscripten build support (wasm-port branch)
- wxwidgets: Add KiCad compatibility fixes

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Viktor Vaczi 2025-12-08 18:26:57 +01:00
commit 9f4ed1e51e
23 changed files with 793 additions and 15 deletions

View file

@ -0,0 +1,15 @@
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1107,7 +1107,9 @@ if( wxWidgets_FIND_STYLE STREQUAL "win32" )
add_compile_definitions( __WXGTK__ )
endif()
elseif( _wx_selected_config )
- string(REGEX MATCH "(msw|qt|gtk|osx)" KICAD_WX_PORT "${_wx_selected_config}")
+ string(REGEX MATCH "(msw|qt|gtk|osx|wasm)" KICAD_WX_PORT "${_wx_selected_config}")
endif()
-if( KICAD_WX_PORT )
+if( KICAD_WX_PORT STREQUAL "wasm" )
+ message( STATUS "Detected wxWidgets port: wasm (WebAssembly)")
+elseif( KICAD_WX_PORT )
message( STATUS "Detected wxWidgets port: ${KICAD_WX_PORT}")

View file

@ -0,0 +1,15 @@
--- a/libs/kiplatform/CMakeLists.txt
+++ b/libs/kiplatform/CMakeLists.txt
@@ -37,6 +37,12 @@ elseif( KICAD_WX_PORT STREQUAL gtk )
message( STATUS "Configuring KiCad not to hide any GTK error messages" )
string( APPEND PLATFORM_COMPILE_DEFS "-DKICAD_SHOW_GTK_MESSAGES" )
endif()
+elseif( KICAD_WX_PORT STREQUAL wasm )
+ # WASM port - uses stub implementations from wasm layer
+ set( PLATFORM_SRCS
+ ${PROJECT_SOURCE_DIR}/../wasm/kiplatform/ui.cpp
+ )
+ message( STATUS "Using WASM kiplatform stub implementation" )
endif()