Merge pull request #41 from ochafik/build-nits

`build`: Add script to build openscad-wasm + remove useless script
This commit is contained in:
Olivier Chafik 2024-07-08 03:11:32 +01:00 • committed by GitHub
commit 31a329fb5a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 26 additions and 22 deletions

26
build-openscad-wasm.sh Executable file
View file

@ -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 )

View file

@ -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);