Conversation
Two-package recipe for the Gmsh finite element mesh generator: - libgmsh: shared library (C++ → WASM via emcmake/emmake) - gmsh: pure Python ctypes wrapper (api/gmsh.py) Patches fix Emscripten symbol visibility in the CMake build and adapt the Python API for Pyodide's library loading and signal handling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…meta.yaml - Remove libgmsh visibility patch (not needed with SIDE_MODULE=1) - Remove -sWASM_BIGINT linker flag - Move import test to meta.yaml test.imports - Remove redundant test_gmsh_import from test_gmsh.py Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Package Build ResultsTotal packages built: 23 Package Build Times (click to expand)
Longest build: libgmsh (41m 30s) |
- Replace complex Emscripten platform detection with simple CDLL("libgmsh.so")
- Replace signal.signal() calls with pass
- Use ${SIDE_MODULE_LDFLAGS} instead of hardcoded -sSIDE_MODULE=1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
How is something like that usually set up? |
If you are comfortable working with the meta.yaml files, you can copy the recipes you added in this PR to your local directory, run |
|
We're probably going to be compiling a bunch of big EDA tools, so it sounds like we'd want to maintain our own recipes and idk, set up an anaconda index? Or just make GitHub Releases and add recipes here? Are there any good examples of big packages that are set up in a way that's easy to keep up with pyodide changes? |
Not very much. We are in a transitional phase, shifting from a model where all packages are built in this repository to one where each package manager builds the packages. Once PEP 783 is accepted, we plan to gradually stop building packages in this repository and encourage package managers to build them directly and publish to PyPI. In other words, ideally, if you wish to use rdkit, the best approach would be to contact rdkit maintainers and have them help you build them in the repository/CI. For now, a good example would be looking at @fzumstein 's work (polars-pyodide, duckdb-pyodide) |

Two-package recipe for the Gmsh finite element mesh generator:
I'm not totally sure all the patches and flags are entirely correct but it's a start.