Files
wasm-simulator/list-linuxcnc-rs274-api-project-sources.sh
cnc 40a63c76f7 高效率推进 LinuxCNC 源码对齐流程
说明:集中 LinuxCNC 源码清单与 wasm/native probe 的路径解析,补强 manifest、shim、source-link 检查,并保持 LinuxCNC 源码后端对齐验证流程可复用。

验证:./test-native.sh;./test-linuxcnc-source-link.sh;./test-all-native.sh;wasm source/probe 相关脚本。
2026-05-27 11:14:06 +08:00

54 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
cd "$(dirname "$0")"
filter=${1:-}
awk '
/set\(cnc_sim_core_sources/ {
in_core = 1
next
}
in_core && /^[[:space:]]*\)/ {
in_core = 0
next
}
/list\(APPEND cnc_sim_core_sources/ {
in_backend_sources = 1
next
}
in_backend_sources && /^[[:space:]]*\)/ {
in_backend_sources = 0
next
}
in_core || in_backend_sources {
line = $0
sub(/^[[:space:]]*/, "", line)
sub(/[[:space:]]*$/, "", line)
if (line == "") {
next
}
print "core/" line
}
' core/CMakeLists.txt | while IFS= read -r source; do
if [[ ! -f "$source" ]]; then
echo "missing LinuxCNC rs274 API project source: $source" >&2
exit 1
fi
if [[ -n "$filter" && "$(basename "$source")" != "$filter" ]]; then
continue
fi
printf '%s\n' "$source"
done | {
found=0
while IFS= read -r source; do
found=1
printf '%s\n' "$source"
done
if [[ -n "$filter" && "$found" -eq 0 ]]; then
echo "missing LinuxCNC rs274 API project source in CMake list: $filter" >&2
exit 1
fi
}