强制WASM增量构建
结论:INI和解释器WASM构建已改为对象、依赖和命令指纹驱动的增量编译,并将所有构建必须增量写入项目规则。
This commit is contained in:
@@ -3,17 +3,44 @@ set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
|
||||
OUT_DIR="$ROOT_DIR/runtime/ui/ini-panel"
|
||||
BUILD_DIR="$ROOT_DIR/build/wasm/ini-panel"
|
||||
OBJ_DIR="$BUILD_DIR/obj"
|
||||
|
||||
emcc \
|
||||
-std=c++20 \
|
||||
source "$ROOT_DIR/tools/wasm_incremental_build_lib.sh"
|
||||
|
||||
mkdir -p "$OUT_DIR" "$BUILD_DIR" "$OBJ_DIR"
|
||||
|
||||
TARGET="linuxcnc_ini_wasm"
|
||||
: > "$BUILD_DIR/$TARGET.stdout.log"
|
||||
: > "$BUILD_DIR/$TARGET.stderr.log"
|
||||
|
||||
COMMON_FLAGS=(
|
||||
-std=c++20
|
||||
-O2
|
||||
-I"$ROOT_DIR/runtime/core/shims"
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src"
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src/rtapi"
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src/emc"
|
||||
)
|
||||
|
||||
SOURCES=(
|
||||
"$ROOT_DIR/vendor/linuxcnc/src/emc/ini/inifile.cc"
|
||||
"$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_ini_wasm.cpp"
|
||||
)
|
||||
|
||||
OBJECTS=()
|
||||
for source in "${SOURCES[@]}"; do
|
||||
obj="$(source_object_path "$source" "$ROOT_DIR" "$OBJ_DIR")"
|
||||
OBJECTS+=("$obj")
|
||||
compile_wasm_object "$TARGET" "$source" "$obj" "$BUILD_DIR" "${COMMON_FLAGS[@]}"
|
||||
done
|
||||
|
||||
link_wasm_module \
|
||||
"$TARGET" \
|
||||
"$OUT_DIR/linuxcnc_ini.js" \
|
||||
"$BUILD_DIR" \
|
||||
-O2 \
|
||||
-I"$ROOT_DIR/runtime/core/shims" \
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src" \
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src/rtapi" \
|
||||
-I"$ROOT_DIR/vendor/linuxcnc/src/emc" \
|
||||
"$ROOT_DIR/vendor/linuxcnc/src/emc/ini/inifile.cc" \
|
||||
"$ROOT_DIR/runtime/core/linuxcnc_wrap/linuxcnc_ini_wasm.cpp" \
|
||||
-o "$OUT_DIR/linuxcnc_ini.js" \
|
||||
"${OBJECTS[@]}" \
|
||||
-s MODULARIZE=1 \
|
||||
-s EXPORT_ES6=1 \
|
||||
-s ENVIRONMENT=web,node \
|
||||
|
||||
Reference in New Issue
Block a user