diff --git a/build-wasm.sh b/build-wasm.sh index 771da92..e04f757 100755 --- a/build-wasm.sh +++ b/build-wasm.sh @@ -169,7 +169,7 @@ wasm_build_next_signature=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_wasm_build.signature printf 'COMPILER_LAUNCHER=%s\n' "$cmake_compiler_launcher_mode" printf 'CMAKE_LISTS=' sha256sum core/CMakeLists.txt - printf 'CONFIGURE_RULE_VERSION=1\n' + printf 'CONFIGURE_RULE_VERSION=2\n' } > "$wasm_build_next_signature" configure_wasm=1 if [[ ! -f "$wasm_build_signature" ]] || ! cmp -s "$wasm_build_signature" "$wasm_build_next_signature"; then @@ -184,6 +184,7 @@ emcmake cmake -S core -B build/wasm \ -DCNC_SIM_LINUXCNC_ROOT="$linuxcnc_root" \ -DCNC_SIM_LINUXCNC_WASM_SOURCE_MANIFEST="$manifest" \ -DCNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE=ON \ + -DCNC_SIM_ENABLE_SMOKE_BACKEND=OFF \ "${cmake_compiler_launcher_args[@]}" fi mv "$wasm_build_next_signature" "$wasm_build_signature" diff --git a/docs/linuxcnc-source-policy.md b/docs/linuxcnc-source-policy.md index a561fa3..f7eadd8 100644 --- a/docs/linuxcnc-source-policy.md +++ b/docs/linuxcnc-source-policy.md @@ -290,6 +290,9 @@ Build and source-link guardrails: `rs274ngc_pre` link checks. - `build-wasm.sh` must check `cmake`, `emcmake`, `emcc`, and `node` before the Emscripten configure step. +- `build-wasm.sh` must explicitly configure `CNC_SIM_ENABLE_SMOKE_BACKEND=OFF` + while enabling `CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE=ON`, so stale CMake + cache values cannot route browser artifacts through the legacy smoke backend. - `build-wasm.sh` must reuse a persistent `build/wasm` configure signature keyed by manifest, `core/CMakeLists.txt`, an explicit `CONFIGURE_RULE_VERSION`, LinuxCNC root, and compiler launcher. The signature diff --git a/test-all-native.sh b/test-all-native.sh index 7591141..6652de2 100755 --- a/test-all-native.sh +++ b/test-all-native.sh @@ -572,7 +572,7 @@ grep -F 'wasm_build_signature=build/wasm/wasm-build.signature' build-wasm.sh >/d grep -F 'wasm_build_next_signature=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_wasm_build.signature.XXXXXX")' build-wasm.sh >/dev/null grep -F 'sha256sum "$manifest"' build-wasm.sh >/dev/null grep -F 'sha256sum core/CMakeLists.txt' build-wasm.sh >/dev/null -grep -F "printf 'CONFIGURE_RULE_VERSION=1\n'" build-wasm.sh >/dev/null +grep -F "printf 'CONFIGURE_RULE_VERSION=2\n'" build-wasm.sh >/dev/null grep -F 'run_parallel_wasm_probe() {' build-wasm.sh >/dev/null grep -F 'wait_parallel_wasm_probes() {' build-wasm.sh >/dev/null grep -F 'parallel_probe_pids+=("$!")' build-wasm.sh >/dev/null @@ -595,6 +595,7 @@ grep -F -- 'for required_tool in cmake emcmake emcc node; do' build-wasm.sh >/de grep -F -- 'missing_tools+=("$required_tool")' build-wasm.sh >/dev/null grep -F 'WASM build tools are required. Missing:' build-wasm.sh >/dev/null grep -F -- 'emcmake cmake -S core -B build/wasm \' build-wasm.sh >/dev/null +grep -F -- '-DCNC_SIM_ENABLE_SMOKE_BACKEND=OFF' build-wasm.sh >/dev/null grep -F 'cmake --build build/wasm --target cnc_sim_wasm_runtime_probe cnc_sim_wasm --parallel "$build_jobs"' build-wasm.sh >/dev/null if ! awk ' index($0, "run_parallel_wasm_probe \"LinuxCNC wasm tooldata shim link probe\"") { parallel_start_line = NR } diff --git a/test-linuxcnc-wasm-cmake-safe-probe.sh b/test-linuxcnc-wasm-cmake-safe-probe.sh index 874c944..90e969e 100755 --- a/test-linuxcnc-wasm-cmake-safe-probe.sh +++ b/test-linuxcnc-wasm-cmake-safe-probe.sh @@ -652,7 +652,7 @@ grep -F 'wasm_build_signature=build/wasm/wasm-build.signature' build-wasm.sh >/d grep -F 'wasm_build_next_signature=$(mktemp "${TMPDIR:-/tmp}/cnc_sim_wasm_build.signature.XXXXXX")' build-wasm.sh >/dev/null grep -F 'sha256sum "$manifest"' build-wasm.sh >/dev/null grep -F 'sha256sum core/CMakeLists.txt' build-wasm.sh >/dev/null -grep -F "printf 'CONFIGURE_RULE_VERSION=1\n'" build-wasm.sh >/dev/null +grep -F "printf 'CONFIGURE_RULE_VERSION=2\n'" build-wasm.sh >/dev/null grep -F 'run_parallel_wasm_probe() {' build-wasm.sh >/dev/null grep -F 'wait_parallel_wasm_probes() {' build-wasm.sh >/dev/null grep -F 'parallel_probe_pids+=("$!")' build-wasm.sh >/dev/null @@ -1475,6 +1475,7 @@ grep -F "LinuxCNC wasm source manifest has no blocked entries" core/CMakeLists.t grep -F "WASM builds must enable CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE so LinuxCNC rs274 sources are linked" core/CMakeLists.txt >/dev/null grep -F "CNC_SIM_ENABLE_SMOKE_BACKEND cannot be combined with CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE" core/CMakeLists.txt >/dev/null grep -F -- '-DCNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE=ON' build-wasm.sh >/dev/null +grep -F -- '-DCNC_SIM_ENABLE_SMOKE_BACKEND=OFF' build-wasm.sh >/dev/null grep -F 'if(CNC_SIM_ENABLE_LINUXCNC_WASM_SAFE_PROBE)' core/CMakeLists.txt >/dev/null grep -F 'list(APPEND cnc_sim_core_sources ${cnc_sim_linuxcnc_rs274_backend_sources})' core/CMakeLists.txt >/dev/null grep -F 'set(cnc_sim_linuxcnc_kinematics_c_sources' core/CMakeLists.txt >/dev/null