#!/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 }