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>
This commit is contained in:
parent
756feb35da
commit
3034d9d76f
36 changed files with 3708 additions and 0 deletions
49
wasm/kiplatform/io.cpp
Normal file
49
wasm/kiplatform/io.cpp
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
/*
|
||||
* WASM implementation of kiplatform/io.h
|
||||
* Provides file I/O functions for WASM virtual filesystem
|
||||
*/
|
||||
|
||||
#include <kiplatform/io.h>
|
||||
#include <wx/string.h>
|
||||
#include <wx/filename.h>
|
||||
#include <stdio.h>
|
||||
|
||||
namespace KIPLATFORM
|
||||
{
|
||||
namespace IO
|
||||
{
|
||||
|
||||
FILE* SeqFOpen( const wxString& aPath, const wxString& mode )
|
||||
{
|
||||
// WASM doesn't have special sequential read hints
|
||||
// Just use standard fopen
|
||||
return fopen( aPath.utf8_str(), mode.utf8_str() );
|
||||
}
|
||||
|
||||
bool DuplicatePermissions( const wxString& aSrc, const wxString& aDest )
|
||||
{
|
||||
// WASM virtual filesystem doesn't have detailed permissions
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MakeWriteable( const wxString& aFilePath )
|
||||
{
|
||||
// All files in WASM virtual filesystem are writeable
|
||||
return true;
|
||||
}
|
||||
|
||||
bool IsFileHidden( const wxString& aFileName )
|
||||
{
|
||||
// Check for Unix-style hidden files (starting with .)
|
||||
wxFileName fn( aFileName );
|
||||
wxString name = fn.GetFullName();
|
||||
return !name.IsEmpty() && name[0] == '.';
|
||||
}
|
||||
|
||||
void LongPathAdjustment( wxFileName& aFilename )
|
||||
{
|
||||
// No-op on non-Windows platforms
|
||||
}
|
||||
|
||||
} // namespace IO
|
||||
} // namespace KIPLATFORM
|
||||
Loading…
Reference in a new issue