@charnley/hello-wasm
v0.1.8
Published
How to build `RDKit_minimal.js` + `RDKit_minimal.wasm` built from local source.
Downloads
34
Readme
test repo to build and deploy rdkit minimallib
How to build RDKit_minimal.js + RDKit_minimal.wasm built from local source.
Steps
Note, you should find and rename docker-compose to docker compose.
# 1. Enable reaction support — edit Dockerfile_local_build, add to emcmake cmake block:
# -DRDK_BUILD_MINIMAL_LIB_RXN=ON \
vi ../../rdkit/Code/MinimalLib/docker/Dockerfile_local_build
# 2. Build
cd ../../rdkit/Code/MinimalLib
GET_SRC=copy_from_local scripts/build_rdkitjs.sh
# 3. Copy artifacts here
cp dist/RDKit_minimal.js ../../../smarts101/src/lib/rdkit/
cp dist/RDKit_minimal.wasm ../../../smarts101/src/lib/rdkit/
# 4. Add default export to RDKit_minimal.js (required for ES module import)
echo "export default initRDKitModule;" >> src/lib/rdkit/RDKit_minimal.jsBuild takes ~10 min.
Optional features
| Flag | Adds |
| ----------------------------------- | -------------------------------------------------- |
| -DRDK_BUILD_MINIMAL_LIB_RXN=ON | get_rxn() + run_reactants() — SMIRKS reactions |
| -DRDK_BUILD_MINIMAL_LIB_MCS=ON | Maximum common substructure |
| -DRDK_BUILD_MINIMAL_LIB_MOLZIP=ON | MolZip / fragment linking |
Generate TypeScript types from bindings
Emscripten 3.1.25+ can generate interface file .d.ts directly. Edit CMakeLists.txt line 47, add --emit-tsd:
# before
set_target_properties(RDKit_minimal PROPERTIES LINK_FLAGS "--bind")
# after
set_target_properties(RDKit_minimal PROPERTIES LINK_FLAGS "--bind --emit-tsd RDKit_minimal.d.ts")