fix(build): resolve a bare EMCC command name in build-wasm.sh
Third failure uncovered by the restored pipeline. With checkout and the C++ build fixed, CI reached the WASM step and died on `[build-wasm] emcc not found at emcc`: ci.yml passed `EMCC: emcc`, but the script's existence check (`[[ ! -x "$EMCC" && ! -f "$EMCC" ]]`) only understands paths, so it looked for a file literally named "emcc" in the working directory. This has been broken for as long as the override existed; it was invisible because CI never got past checkout to run it. Resolve a bare command name through `command -v` before the check, and drop the now-redundant EMCC override in ci.yml — setup-emsdk already puts emcc on PATH, which is what the script's own default looks for. Verified by invoking it the way CI does: `EMCC=emcc bash scripts/build-wasm.sh` now builds. Incidentally confirms the new freshness gate is sound — the local toolchain is the same pinned emcc 3.1.69, and the rebuild reproduced the committed artifact byte-for-byte. run-all-tests.sh ALL GREEN.
This commit is contained in:
parent
3552ee46f6
commit
aa60fbb466
2 changed files with 10 additions and 5 deletions
6
.github/workflows/ci.yml
vendored
6
.github/workflows/ci.yml
vendored
|
|
@ -70,10 +70,8 @@ jobs:
|
|||
run: bash scripts/parity-check.sh
|
||||
|
||||
- name: Build WASM
|
||||
env:
|
||||
# The script defaults to /usr/lib/emscripten/emcc; the runner gets
|
||||
# emcc on PATH via setup-emsdk. Override.
|
||||
EMCC: emcc
|
||||
# setup-emsdk puts emcc on PATH; build-wasm.sh picks it up via
|
||||
# `command -v emcc`. No EMCC override needed.
|
||||
run: bash scripts/build-wasm.sh
|
||||
|
||||
- name: Parity check (native vs WASM)
|
||||
|
|
|
|||
|
|
@ -18,9 +18,16 @@ ROOT="$(cd "$(dirname "$0")/.." && pwd)"
|
|||
OUT="$ROOT/manifold/public"
|
||||
SRC="$ROOT/nisps/wasm/bindings.cpp"
|
||||
|
||||
# EMCC may be a bare command name on PATH (emsdk installs it that way) or an
|
||||
# absolute path. Resolve the former before the existence check, which otherwise
|
||||
# looks for a file of that name in the CWD and always fails.
|
||||
if [[ "$EMCC" != */* ]]; then
|
||||
EMCC="$(command -v "$EMCC" || echo "$EMCC")"
|
||||
fi
|
||||
|
||||
if [[ ! -x "$EMCC" && ! -f "$EMCC" ]]; then
|
||||
echo "[build-wasm] emcc not found at $EMCC" >&2
|
||||
echo "[build-wasm] set EMCC=/path/to/emcc and retry." >&2
|
||||
echo "[build-wasm] set EMCC=/path/to/emcc (or put emcc on PATH) and retry." >&2
|
||||
exit 2
|
||||
fi
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue