mirror of
https://github.com/Z3Prover/z3
synced 2025-08-07 19:51:22 +00:00
Add WebAssembly/TypeScript bindings (#5762)
* Add TypeScript bindings * mark Z3_eval_smtlib2_string as async
This commit is contained in:
parent
9ac57fc510
commit
2b934b601d
18 changed files with 1722 additions and 33 deletions
23
src/api/js/build-wasm.sh
Executable file
23
src/api/js/build-wasm.sh
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -euxo pipefail
|
||||
|
||||
|
||||
export ROOT=$PWD
|
||||
|
||||
cd ../../..
|
||||
export CXXFLAGS="-pthread -s USE_PTHREADS=1 -s DISABLE_EXCEPTION_CATCHING=0"
|
||||
export LDFLAGS="-s WASM_BIGINT -s -pthread -s USE_PTHREADS=1"
|
||||
if [ ! -f "build/Makefile" ]; then
|
||||
emconfigure python scripts/mk_make.py --staticlib --single-threaded
|
||||
fi
|
||||
|
||||
cd build
|
||||
emmake make -j$(nproc) libz3.a
|
||||
|
||||
cd $ROOT
|
||||
|
||||
export EM_CACHE=$HOME/.emscripten/
|
||||
export FNS=$(node scripts/list-exports.js)
|
||||
export METHODS='["ccall","FS","allocate","UTF8ToString","intArrayFromString","ALLOC_NORMAL"]'
|
||||
emcc build/async-fns.cc ../../../build/libz3.a --std=c++20 --pre-js src/async-wrapper.js -g2 -pthread -fexceptions -s WASM_BIGINT -s USE_PTHREADS=1 -s PTHREAD_POOL_SIZE=0 -s PTHREAD_POOL_SIZE_STRICT=0 -s MODULARIZE=1 -s 'EXPORT_NAME="initZ3"' -s EXPORTED_RUNTIME_METHODS=$METHODS -s EXPORTED_FUNCTIONS=$FNS -s DISABLE_EXCEPTION_CATCHING=0 -s SAFE_HEAP=0 -s DEMANGLE_SUPPORT=1 -s TOTAL_MEMORY=1GB -I z3/src/api/ -o build/z3-built.js
|
Loading…
Add table
Add a link
Reference in a new issue