接续上一轮:推进浏览器验证与M428配置收拢

结论:已完成浏览器侧真实加载验证,M428/M429/M430 的配置入口进一步从 LinuxCNC INI/HALFILE/REMAP 来源生成,native 与 source-link 验证通过。
This commit is contained in:
cnc
2026-05-30 10:03:21 +08:00
parent b40914747d
commit de273bf830
141 changed files with 11255 additions and 1259 deletions

View File

@@ -120,6 +120,7 @@ if grep -RInF "${forbidden_link_flags_process_substitution}LINUXCNC_ROOT=\"\$lin
fi
syntax_only_source_common_flags=$(LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-source-common-cxxflags.sh --syntax-only)
grep -Fx -- "-fsyntax-only" <<<"$syntax_only_source_common_flags" >/dev/null
grep -Fx -- "-fpermissive" <<<"$syntax_only_source_common_flags" >/dev/null
core_include_source_common_flags=$(LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-source-common-cxxflags.sh --core-include)
grep -Fx -- "-I" <<<"$core_include_source_common_flags" >/dev/null
grep -Fx -- "core/include" <<<"$core_include_source_common_flags" >/dev/null
@@ -147,7 +148,11 @@ grep -F "target_link_libraries(cnc_sim_linuxcnc_canon_bridge PRIVATE cnc_sim_cor
grep -F './list-linuxcnc-rs274-dump-project-sources.sh > "$project_source_list"' test-linuxcnc-source-link.sh >/dev/null
grep -F './list-linuxcnc-rs274-dump-project-sources.sh > "$project_source_list"' test-linuxcnc-rs274-native.sh >/dev/null
grep -F './list-linuxcnc-rs274-api-project-sources.sh > "$project_source_list"' test-linuxcnc-api-native.sh >/dev/null
grep -F './list-cnc-sim-core-sources.sh > "$core_source_list"' test-native.sh >/dev/null
grep -F './list-cnc-sim-core-sources.sh --with-smoke > "$core_source_list"' test-native.sh >/dev/null
grep -F -- '-DCNC_SIM_ENABLE_SMOKE_BACKEND' test-native.sh >/dev/null
grep -F 'option(CNC_SIM_ENABLE_SMOKE_BACKEND "Build the legacy explicit smoke G-code backend test harness" OFF)' core/CMakeLists.txt >/dev/null
grep -F 'CNC_SIM_ENABLE_SMOKE_BACKEND cannot be combined with CNC_SIM_ENABLE_LINUXCNC_RS274_BACKEND' core/CMakeLists.txt >/dev/null
grep -F 'smoke backend is not compiled into this build' core/src/gcode_backend.cpp >/dev/null
grep -F './list-linuxcnc-bridge-smoke-project-sources.sh > "$project_source_list"' test-linuxcnc-bridge-native.sh >/dev/null
grep -F 'LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-source-support-objects.sh > "$support_object_list"' test-linuxcnc-source-link.sh >/dev/null
grep -F 'trap '\''rm -f "$source_list" "$missing_source_manifest" "$missing_source_log"'\'' EXIT' test-linuxcnc-source-syntax.sh >/dev/null
@@ -233,6 +238,16 @@ native_manifest_tooldata=$(./list-linuxcnc-source-manifest-sources.sh "$manifest
grep -Fx "src/emc/tooldata/tooldata_common.cc" <<<"$native_manifest_tooldata" >/dev/null
native_manifest_header=$(./list-linuxcnc-source-manifest-sources.sh "$manifest" header)
grep -Fx "src/emc/rs274ngc/rs274ngc_interp.hh" <<<"$native_manifest_header" >/dev/null
native_manifest_metadata=$(./list-linuxcnc-source-manifest-sources.sh "$manifest" metadata)
grep -Fx "src/emc/rs274ngc/Submakefile" <<<"$native_manifest_metadata" >/dev/null
grep -Fx "src/emc/rs274ngc/meson.build" <<<"$native_manifest_metadata" >/dev/null
rs274ngc_manifest_entries=$(./list-linuxcnc-source-manifest-sources.sh "$manifest" all | grep '^src/emc/rs274ngc/' | sort)
rs274ngc_source_entries=$(find "$linuxcnc_root/src/emc/rs274ngc" -maxdepth 1 -type f -printf 'src/emc/rs274ngc/%f\n' | sort)
if ! diff -u <(printf '%s\n' "$rs274ngc_source_entries") <(printf '%s\n' "$rs274ngc_manifest_entries") >/dev/null; then
echo "native rs274ngc manifest no longer covers the full LinuxCNC source directory" >&2
diff -u <(printf '%s\n' "$rs274ngc_source_entries") <(printf '%s\n' "$rs274ngc_manifest_entries") >&2 || true
exit 1
fi
if grep -E '\.(hh|h)$' <<<"$native_manifest_core" >/dev/null; then
echo "native manifest core compile group includes headers" >&2
exit 1
@@ -258,9 +273,43 @@ fi
native_manifest_core_full=$(LINUXCNC_ROOT="$linuxcnc_root" ./list-linuxcnc-source-manifest-sources.sh "$manifest" core full)
grep -Fx "$linuxcnc_root/src/emc/rs274ngc/interp_arc.cc" <<<"$native_manifest_core_full" >/dev/null
kinematics_manifest_config=$(./list-linuxcnc-kinematics-manifest-sources.sh linuxcnc-kinematics-source-files.txt config)
grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" <<<"$kinematics_manifest_config" >/dev/null
grep -Fx "configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" <<<"$kinematics_manifest_config" >/dev/null
grep -Fx "configs/sim/axis/vismach/puma/puma560_dh.hal" <<<"$kinematics_manifest_config" >/dev/null
grep -Fx "HALCMD = sets :x-offset -20" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null
grep -Fx "HALCMD = sets :z-offset -15" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null
grep -Fx "HALCMD = setp xyzbc-trt-kins.x-rot-point 0" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null
grep -Fx "HALCMD = setp xyzbc-trt-kins.conventional-directions 0" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzbc-trt.ini" >/dev/null
grep -Fx "HALCMD = sets :z-offset 10" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" >/dev/null
grep -Fx "HALCMD = setp xyzac-trt-kins.conventional-directions 0" "$linuxcnc_root/configs/sim/axis/vismach/5axis/table-rotary-tilting/xyzac-trt.ini" >/dev/null
grep -Fx "setp genserkins.A-2 17" "$linuxcnc_root/configs/sim/axis/vismach/puma/puma560_dh.hal" >/dev/null
grep -Fx "setp genserkins.ALPHA-4 -1.570796326" "$linuxcnc_root/configs/sim/axis/vismach/puma/puma560_dh.hal" >/dev/null
grep -Fx "setp genserkins.D-0 26.45" "$linuxcnc_root/configs/sim/axis/vismach/puma/puma560_dh.hal" >/dev/null
./list-linuxcnc-rs274-dump-project-sources.sh >/dev/null
rs274_dump_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_rs274_dump.cpp)
grep -Fx "core/tools/linuxcnc_rs274_dump.cpp" <<<"$rs274_dump_source" >/dev/null
rs274_dump_corexy_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_corexykins_adapter.cpp)
grep -Fx "core/src/linuxcnc_corexykins_adapter.cpp" <<<"$rs274_dump_corexy_source" >/dev/null
rs274_dump_cubic_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_cubic_adapter.cpp)
grep -Fx "core/src/linuxcnc_cubic_adapter.cpp" <<<"$rs274_dump_cubic_source" >/dev/null
rs274_dump_genhex_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_genhexkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_genhexkins_adapter.cpp" <<<"$rs274_dump_genhex_source" >/dev/null
rs274_dump_lineardelta_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_lineardeltakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_lineardeltakins_adapter.cpp" <<<"$rs274_dump_lineardelta_source" >/dev/null
rs274_dump_rotarydelta_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_rotarydeltakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_rotarydeltakins_adapter.cpp" <<<"$rs274_dump_rotarydelta_source" >/dev/null
rs274_dump_maxkins_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_maxkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_maxkins_adapter.cpp" <<<"$rs274_dump_maxkins_source" >/dev/null
rs274_dump_pentakins_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_pentakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_pentakins_adapter.cpp" <<<"$rs274_dump_pentakins_source" >/dev/null
rs274_dump_rosekins_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_rosekins_adapter.cpp)
grep -Fx "core/src/linuxcnc_rosekins_adapter.cpp" <<<"$rs274_dump_rosekins_source" >/dev/null
rs274_dump_scorbot_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_scorbot_kins_adapter.cpp)
grep -Fx "core/src/linuxcnc_scorbot_kins_adapter.cpp" <<<"$rs274_dump_scorbot_source" >/dev/null
rs274_dump_tripodkins_source=$(./list-linuxcnc-rs274-dump-project-sources.sh linuxcnc_tripodkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_tripodkins_adapter.cpp" <<<"$rs274_dump_tripodkins_source" >/dev/null
if ./list-linuxcnc-rs274-dump-project-sources.sh does_not_exist.cc >"$missing_dump_source_log" 2>&1; then
echo "rs274 dump project source lister accepted missing source filter" >&2
exit 1
@@ -274,6 +323,15 @@ fi
./list-linuxcnc-rs274-api-project-sources.sh >/dev/null
rs274_api_source=$(./list-linuxcnc-rs274-api-project-sources.sh linuxcnc_rs274_backend.cpp)
grep -Fx "core/src/linuxcnc_rs274_backend.cpp" <<<"$rs274_api_source" >/dev/null
if ./list-linuxcnc-rs274-api-project-sources.sh smoke_gcode_parser.cpp >"$missing_api_source_log" 2>&1; then
echo "rs274 API project source lister included smoke backend source" >&2
exit 1
fi
if ! grep -F "missing LinuxCNC rs274 API project source in CMake list: smoke_gcode_parser.cpp" "$missing_api_source_log" >/dev/null; then
echo "rs274 API project source lister did not exclude smoke backend clearly" >&2
sed -n '1,20p' "$missing_api_source_log" >&2
exit 1
fi
if ./list-linuxcnc-rs274-api-project-sources.sh does_not_exist.cc >"$missing_api_source_log" 2>&1; then
echo "rs274 API project source lister accepted missing source filter" >&2
exit 1
@@ -285,7 +343,16 @@ if ! grep -F "missing LinuxCNC rs274 API project source in CMake list: does_not_
fi
./list-cnc-sim-core-sources.sh >/dev/null
cnc_sim_core_source=$(./list-cnc-sim-core-sources.sh smoke_gcode_parser.cpp)
if ./list-cnc-sim-core-sources.sh smoke_gcode_parser.cpp >"$missing_core_source_log" 2>&1; then
echo "default cnc sim core source lister included smoke backend source" >&2
exit 1
fi
if ! grep -F "missing cnc sim core source in CMake list: smoke_gcode_parser.cpp" "$missing_core_source_log" >/dev/null; then
echo "default cnc sim core source lister did not exclude smoke backend clearly" >&2
sed -n '1,20p' "$missing_core_source_log" >&2
exit 1
fi
cnc_sim_core_source=$(./list-cnc-sim-core-sources.sh --with-smoke smoke_gcode_parser.cpp)
grep -Fx "core/src/smoke_gcode_parser.cpp" <<<"$cnc_sim_core_source" >/dev/null
if ./list-cnc-sim-core-sources.sh does_not_exist.cc >"$missing_core_source_log" 2>&1; then
echo "cnc sim core source lister accepted missing source filter" >&2
@@ -300,6 +367,26 @@ fi
./list-linuxcnc-bridge-smoke-project-sources.sh >/dev/null
bridge_smoke_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_canon_bridge.cpp)
grep -Fx "core/src/linuxcnc_canon_bridge.cpp" <<<"$bridge_smoke_source" >/dev/null
bridge_smoke_corexy_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_corexykins_adapter.cpp)
grep -Fx "core/src/linuxcnc_corexykins_adapter.cpp" <<<"$bridge_smoke_corexy_source" >/dev/null
bridge_smoke_cubic_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_cubic_adapter.cpp)
grep -Fx "core/src/linuxcnc_cubic_adapter.cpp" <<<"$bridge_smoke_cubic_source" >/dev/null
bridge_smoke_genhex_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_genhexkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_genhexkins_adapter.cpp" <<<"$bridge_smoke_genhex_source" >/dev/null
bridge_smoke_lineardelta_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_lineardeltakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_lineardeltakins_adapter.cpp" <<<"$bridge_smoke_lineardelta_source" >/dev/null
bridge_smoke_rotarydelta_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_rotarydeltakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_rotarydeltakins_adapter.cpp" <<<"$bridge_smoke_rotarydelta_source" >/dev/null
bridge_smoke_maxkins_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_maxkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_maxkins_adapter.cpp" <<<"$bridge_smoke_maxkins_source" >/dev/null
bridge_smoke_pentakins_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_pentakins_adapter.cpp)
grep -Fx "core/src/linuxcnc_pentakins_adapter.cpp" <<<"$bridge_smoke_pentakins_source" >/dev/null
bridge_smoke_rosekins_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_rosekins_adapter.cpp)
grep -Fx "core/src/linuxcnc_rosekins_adapter.cpp" <<<"$bridge_smoke_rosekins_source" >/dev/null
bridge_smoke_scorbot_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_scorbot_kins_adapter.cpp)
grep -Fx "core/src/linuxcnc_scorbot_kins_adapter.cpp" <<<"$bridge_smoke_scorbot_source" >/dev/null
bridge_smoke_tripodkins_source=$(./list-linuxcnc-bridge-smoke-project-sources.sh linuxcnc_tripodkins_adapter.cpp)
grep -Fx "core/src/linuxcnc_tripodkins_adapter.cpp" <<<"$bridge_smoke_tripodkins_source" >/dev/null
if ./list-linuxcnc-bridge-smoke-project-sources.sh does_not_exist.cc >"$missing_bridge_source_log" 2>&1; then
echo "LinuxCNC bridge smoke project source lister accepted missing source filter" >&2
exit 1