summaryrefslogtreecommitdiff
path: root/platform/wasm/build.sh
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2018-09-10 18:18:49 +0200
committerTor Andersson <tor.andersson@artifex.com>2018-10-23 17:23:59 +0200
commit8ebce9c149112d59552ed530361f80372455fdb2 (patch)
treeebc90eb93345d1b3a77841ed2a92e56a4c1b1baf /platform/wasm/build.sh
parentddd00f62888c908c84932c2a92a0c2d195b26c36 (diff)
downloadmupdf-8ebce9c149112d59552ed530361f80372455fdb2.tar.xz
Add Emscripten / WebAssembly build.
Requires Linux (or possibly MacOS X) and an installed emsdk to build.
Diffstat (limited to 'platform/wasm/build.sh')
-rw-r--r--platform/wasm/build.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/platform/wasm/build.sh b/platform/wasm/build.sh
new file mode 100644
index 00000000..ee092dc8
--- /dev/null
+++ b/platform/wasm/build.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+make -j4 -C ../.. generate
+
+source /opt/emsdk/emsdk_env.sh
+
+echo Building library:
+make -j4 -C ../.. \
+ OS=wasm build=release \
+ XCFLAGS="-DTOFU -DTOFU_CJK -DFZ_ENABLE_SVG=0 -DFZ_ENABLE_HTML=0 -DFZ_ENABLE_EPUB=0 -DFZ_ENABLE_JS=0" \
+ libs
+
+echo
+echo Linking WebAssembly:
+emcc -Wall -Os -o libmupdf.js \
+ -s WASM=1 \
+ -s VERBOSE=0 \
+ -s ABORTING_MALLOC=0 \
+ -s TOTAL_MEMORY=134217728 \
+ -s EXTRA_EXPORTED_RUNTIME_METHODS='["ccall","cwrap"]' \
+ -s DEFAULT_LIBRARY_FUNCS_TO_INCLUDE='[$Browser,"memcpy","memset","malloc","free"]' \
+ -I ../../include \
+ --pre-js wrap.js \
+ wrap.c \
+ ../../build/wasm/release/libmupdf.a \
+ ../../build/wasm/release/libmupdf-third.a
+
+echo Done.