diff --git a/src/SPC/store/scripts/zig-cc.sh b/src/SPC/store/scripts/zig-cc.sh index 9520e6fe..975a5a22 100644 --- a/src/SPC/store/scripts/zig-cc.sh +++ b/src/SPC/store/scripts/zig-cc.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash SCRIPT_DIR="$(dirname "${BASH_SOURCE[0]}")" -BUILDROOT_ABS="$(realpath "$SCRIPT_DIR/../../buildroot/include" 2>/dev/null || echo "")" +BUILDROOT_ABS="$(realpath "$SCRIPT_DIR/../../buildroot/include" 2>/dev/null || true)" PARSED_ARGS=() while [[ $# -gt 0 ]]; do @@ -9,23 +9,15 @@ while [[ $# -gt 0 ]]; do -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 + shift + ARG_ABS="$(realpath "$ARG" 2>/dev/null || true)" + [[ "$ARG_ABS" == "$BUILDROOT_ABS" ]] && PARSED_ARGS+=("-I$ARG") || PARSED_ARGS+=("-isystem" "$ARG") ;; -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 + ARG_ABS="$(realpath "$ARG" 2>/dev/null || true)" + [[ "$ARG_ABS" == "$BUILDROOT_ABS" ]] && PARSED_ARGS+=("-I$ARG") || PARSED_ARGS+=("-isystem$ARG") ;; *) PARSED_ARGS+=("$1") @@ -34,16 +26,13 @@ while [[ $# -gt 0 ]]; do esac done -TARGET="" -if [ -n "$SPC_TARGET" ]; then - TARGET="-target $SPC_TARGET" -fi +[[ -n "$SPC_TARGET" ]] && TARGET="-target $SPC_TARGET" || TARGET="" output=$(zig cc $TARGET $COMPILER_EXTRA "${PARSED_ARGS[@]}" 2>&1) status=$? -if [ $status -ne 0 ] && echo "$output" | grep -q "version '.*' in target triple"; then - output=$(echo "$output" | grep -v "version '.*' in target triple") +if [[ $status -ne 0 ]] && grep -q "version '.*' in target triple" <<< "$output"; then + output=$(grep -v "version '.*' in target triple" <<< "$output") status=0 fi