diff --git a/build-openscad-wasm.sh b/build-openscad-wasm.sh new file mode 100755 index 0000000..8291f0a --- /dev/null +++ b/build-openscad-wasm.sh @@ -0,0 +1,26 @@ +#!/bin/bash +set -euo pipefail + +if [ -z "${OPENSCAD_DIR:-}" ]; then + OPENSCAD_DIR=/tmp/openscad-color + if [ ! -d "$OPENSCAD_DIR" ]; then + rm -fR "$OPENSCAD_DIR" + git clone --recurse https://github.com/ochafik/openscad.git \ + --depth=1 --branch color-assimp2 --single-branch \ + "$OPENSCAD_DIR" + fi +fi + +( cd "$OPENSCAD_DIR" && + docker run --rm -it -v $PWD:/src:rw --platform=linux/amd64 openscad/wasm-base:latest \ + emcmake cmake -B build -DEXPERIMENTAL=ON "$@" && \ + docker run --rm -it -v $PWD:/src:rw --platform=linux/amd64 openscad/wasm-base:latest \ + cmake --build build -j10 ) + +rm -fR libs/openscad-wasm +mkdir -p libs/openscad-wasm + +cp "$OPENSCAD_DIR/build/openscad.wasm" libs/openscad-wasm/ +cp "$OPENSCAD_DIR/build/openscad.js" libs/openscad-wasm/ +cp "$OPENSCAD_DIR/build/openscad.wasm.map" libs/openscad-wasm/ || true +( cd libs && zip -r ../dist/openscad-wasm.zip openscad-wasm ) \ No newline at end of file diff --git a/inline-openscad-worker.ts b/inline-openscad-worker.ts deleted file mode 100644 index a85eb44..0000000 --- a/inline-openscad-worker.ts +++ /dev/null @@ -1,22 +0,0 @@ -const [workerJsFile, openscadEmscriptenJsFile, outputFile, deploymentUrl] = Deno.args; -console.log(` - workerJsFile: ${workerJsFile} - openscadEmscriptenJsFile: ${openscadEmscriptenJsFile} - outputFile: ${outputFile} - deploymentUrl: ${deploymentUrl} -`) - -const importMetaUrl = `${deploymentUrl}${outputFile.split('/').splice(-1)[0]}` - -const workerJs = await Deno.readTextFile(workerJsFile); -const openscadEmscriptenJs = await Deno.readTextFile(openscadEmscriptenJsFile); - -const out = `// AUTO GENERATED FILE - DO NOT EDIT -var import_meta_url = '${deploymentUrl}'; - -${openscadEmscriptenJs.replaceAll(/import.meta.url/g, 'import_meta_url').replaceAll(/export default OpenSCAD;/g, '')} - -${workerJs.replaceAll(/import OpenSCAD from .*;/g, '')} -`; - -await Deno.writeTextFile(outputFile, out);