#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "$0")/../../.." && pwd)" BUILD_DIR="$ROOT_DIR/build/wasm/task-hal" NATIVE_BUILD_DIR="$ROOT_DIR/build/native/hal-runtime" if ! command -v emcc >/dev/null 2>&1 && [[ -f "$HOME/emsdk/emsdk_env.sh" ]]; then # shellcheck source=/dev/null source "$HOME/emsdk/emsdk_env.sh" >/dev/null fi if command -v emcc >/dev/null 2>&1; then if [[ "${SKIP_TASK_HAL_BUILD:-0}" != "1" ]]; then "$ROOT_DIR/tools/build_task_hal_wasm.sh" fi node "$ROOT_DIR/tests/wasm/node/verify_hal_runtime.mjs" exit 0 fi mkdir -p "$NATIVE_BUILD_DIR" "$BUILD_DIR" g++ -std=c++20 \ -I"$ROOT_DIR/runtime/core/shims" \ -I"$ROOT_DIR/runtime/core/linuxcnc_wrap" \ "$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_hal_runtime.cpp" \ "$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_hal_runtime_probe.cpp" \ -o "$NATIVE_BUILD_DIR/linuxcnc_hal_runtime_probe" "$NATIVE_BUILD_DIR/linuxcnc_hal_runtime_probe" echo "hal_runtime_wasm_node_smoke=skipped_missing_emcc"