#!/usr/bin/env bash set -euo pipefail cd "$(dirname "$0")" # LinuxCNC source basis: these project source sets are thin bridge/adaptor # objects used by LinuxCNC-backed native probes. They wrap canon.hh, # rs274ngc_pre.cc, tooldata.hh, and src/emc/kinematics sources instead of # providing independent G-code or kinematics behavior. if [[ "$#" -lt 1 || "$#" -gt 2 ]]; then echo "usage: $0 [filter]" >&2 exit 1 fi source_set=$1 filter=${2:-} case "$source_set" in linuxcnc-rs274-dump) sources=( core/src/canon_event_sink.cpp core/src/linuxcnc_canon_bridge.cpp core/src/linuxcnc_tooldata_fixture.cpp core/src/linuxcnc_5axiskins_adapter.c core/src/linuxcnc_5axiskins_adapter.cpp core/src/linuxcnc_corexykins_adapter.c core/src/linuxcnc_corexykins_adapter.cpp core/src/linuxcnc_cubic_adapter.c core/src/linuxcnc_cubic_adapter.cpp core/src/linuxcnc_genserfuncs_adapter.c core/src/linuxcnc_genserfuncs_adapter.cpp core/src/linuxcnc_genhexkins_adapter.c core/src/linuxcnc_genhexkins_adapter.cpp core/src/linuxcnc_kins_util_adapter.c core/src/linuxcnc_kins_util_adapter.cpp core/src/linuxcnc_lineardeltakins_adapter.c core/src/linuxcnc_lineardeltakins_adapter.cpp core/src/linuxcnc_maxkins_adapter.c core/src/linuxcnc_maxkins_adapter.cpp core/src/linuxcnc_pentakins_adapter.c core/src/linuxcnc_pentakins_adapter.cpp core/src/linuxcnc_pumakins_adapter.c core/src/linuxcnc_pumakins_adapter.cpp core/src/linuxcnc_rotatekins_adapter.c core/src/linuxcnc_rotatekins_adapter.cpp core/src/linuxcnc_rosekins_adapter.c core/src/linuxcnc_rosekins_adapter.cpp core/src/linuxcnc_rotarydeltakins_adapter.c core/src/linuxcnc_rotarydeltakins_adapter.cpp core/src/linuxcnc_scarakins_adapter.c core/src/linuxcnc_scarakins_adapter.cpp core/src/linuxcnc_scorbot_kins_adapter.c core/src/linuxcnc_scorbot_kins_adapter.cpp core/src/linuxcnc_tripodkins_adapter.c core/src/linuxcnc_tripodkins_adapter.cpp core/src/linuxcnc_trtfuncs_adapter.c core/src/linuxcnc_trtfuncs_adapter.cpp core/src/linuxcnc_userkfuncs_adapter.c core/src/linuxcnc_userkfuncs_adapter.cpp core/src/linuxcnc_xyzab_tdr_kins_adapter.c core/src/linuxcnc_xyzab_tdr_kins_adapter.cpp core/src/rtcp_kinematics.cpp core/src/simulator_gcode_controls.cpp core/tools/linuxcnc_rs274_dump.cpp ) missing_source_message="missing LinuxCNC rs274 dump project source" missing_filter_message="missing LinuxCNC rs274 dump project source in list" ;; linuxcnc-bridge-smoke) sources=( core/src/canon_event_sink.cpp core/src/linuxcnc_canon_bridge.cpp core/src/linuxcnc_5axiskins_adapter.c core/src/linuxcnc_5axiskins_adapter.cpp core/src/linuxcnc_corexykins_adapter.c core/src/linuxcnc_corexykins_adapter.cpp core/src/linuxcnc_cubic_adapter.c core/src/linuxcnc_cubic_adapter.cpp core/src/linuxcnc_genserfuncs_adapter.c core/src/linuxcnc_genserfuncs_adapter.cpp core/src/linuxcnc_genhexkins_adapter.c core/src/linuxcnc_genhexkins_adapter.cpp core/src/linuxcnc_kins_util_adapter.c core/src/linuxcnc_kins_util_adapter.cpp core/src/linuxcnc_lineardeltakins_adapter.c core/src/linuxcnc_lineardeltakins_adapter.cpp core/src/linuxcnc_maxkins_adapter.c core/src/linuxcnc_maxkins_adapter.cpp core/src/linuxcnc_pentakins_adapter.c core/src/linuxcnc_pentakins_adapter.cpp core/src/linuxcnc_pumakins_adapter.c core/src/linuxcnc_pumakins_adapter.cpp core/src/linuxcnc_rotatekins_adapter.c core/src/linuxcnc_rotatekins_adapter.cpp core/src/linuxcnc_rosekins_adapter.c core/src/linuxcnc_rosekins_adapter.cpp core/src/linuxcnc_rotarydeltakins_adapter.c core/src/linuxcnc_rotarydeltakins_adapter.cpp core/src/linuxcnc_scarakins_adapter.c core/src/linuxcnc_scarakins_adapter.cpp core/src/linuxcnc_scorbot_kins_adapter.c core/src/linuxcnc_scorbot_kins_adapter.cpp core/src/linuxcnc_tripodkins_adapter.c core/src/linuxcnc_tripodkins_adapter.cpp core/src/linuxcnc_trtfuncs_adapter.c core/src/linuxcnc_trtfuncs_adapter.cpp core/src/linuxcnc_userkfuncs_adapter.c core/src/linuxcnc_userkfuncs_adapter.cpp core/src/linuxcnc_xyzab_tdr_kins_adapter.c core/src/linuxcnc_xyzab_tdr_kins_adapter.cpp core/src/rtcp_kinematics.cpp ) missing_source_message="missing LinuxCNC bridge smoke project source" missing_filter_message="missing LinuxCNC bridge smoke project source in list" ;; *) echo "unknown project source set: $source_set" >&2 exit 1 ;; esac printf '%s\n' "${sources[@]}" | ./list-filtered-existing-paths.sh \ --project-relative \ "$filter" \ "$missing_source_message" \ "$missing_filter_message"