51 lines
1.4 KiB
Bash
Raw Normal View History

2025-06-26 16:03:57 +07:00
#!/usr/bin/env bash
SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")"
BUILDROOT_ABS="$(realpath "$SCRIPT_DIR/../../buildroot/include" 2>/dev/null || echo "")"
PARSED_ARGS=()
while [[ $# -gt 0 ]]; do
case "$1" in
-isystem)
shift
ARG="$1"
[[ -n "$ARG" ]] && shift || break
ARG_ABS="$(realpath "$ARG" 2>/dev/null || echo "")"
if [[ -n "$ARG_ABS" && "$ARG_ABS" == "$BUILDROOT_ABS" ]]; then
PARSED_ARGS+=("-I$ARG")
else
PARSED_ARGS+=("-isystem" "$ARG")
fi
;;
-isystem*)
ARG="${1#-isystem}"
shift
ARG_ABS="$(realpath "$ARG" 2>/dev/null || echo "")"
if [[ -n "$ARG_ABS" && "$ARG_ABS" == "$BUILDROOT_ABS" ]]; then
PARSED_ARGS+=("-I$ARG")
else
PARSED_ARGS+=("-isystem$ARG")
fi
;;
*)
PARSED_ARGS+=("$1")
shift
;;
esac
done
2025-07-01 14:12:51 +07:00
output=$(zig cc -target ${SPC_TARGET} -lstdc++ ${COMPILER_EXTRA} "${PARSED_ARGS[@]}" 2>&1)
status=$?
2025-06-26 16:03:57 +07:00
2025-07-01 14:12:51 +07:00
if [ $status -eq 0 ]; then
echo "$output"
exit 0
2025-06-26 16:03:57 +07:00
fi
2025-07-01 14:12:51 +07:00
if echo "$output" | grep -q "version '.*' in target triple"; then
echo "$output" | grep -v "version '.*' in target triple"
exit 0
2025-06-26 16:03:57 +07:00
else
2025-07-01 14:12:51 +07:00
exec zig cc -target ${SPC_TARGET} ${COMPILER_EXTRA} "${PARSED_ARGS[@]}"
2025-06-26 16:03:57 +07:00
fi