mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
67 lines
1.4 KiB
Bash
Executable File
67 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
# Historically, xcrun has had various bugs, and in some cases it didn't
|
|
# work at all (e.g. CLT-only in the Xcode 4.3 era). This script emulates
|
|
# it and attempts to avoid these issues.
|
|
|
|
# These could be used in conjunction with `--sdk` which ignores SDKROOT.
|
|
if [[ "$*" =~ (^| )-?-show-sdk-(path|version|build) && -n "$HOMEBREW_DEVELOPER_DIR" ]]; then
|
|
export DEVELOPER_DIR=$HOMEBREW_DEVELOPER_DIR
|
|
else
|
|
# Some build tools set DEVELOPER_DIR, so discard it
|
|
unset DEVELOPER_DIR
|
|
fi
|
|
|
|
if [[ -z "$SDKROOT" && -n "$HOMEBREW_SDKROOT" ]]; then
|
|
export SDKROOT=$HOMEBREW_SDKROOT
|
|
fi
|
|
|
|
if [ $# -eq 0 ]; then
|
|
exec /usr/bin/xcrun "$@"
|
|
fi
|
|
|
|
case "$1" in
|
|
-*) exec /usr/bin/xcrun "$@" ;;
|
|
esac
|
|
|
|
arg0=$1
|
|
shift
|
|
|
|
exe="/usr/bin/${arg0}"
|
|
if [ -x "$exe" ]; then
|
|
if [ -n "$HOMEBREW_PREFER_CLT_PROXIES" ]; then
|
|
exec "$exe" "$@"
|
|
elif [ -z "$HOMEBREW_SDKROOT" -o ! -d "$HOMEBREW_SDKROOT" ]; then
|
|
exec "$exe" "$@"
|
|
fi
|
|
fi
|
|
|
|
SUPERBIN=$(cd "${0%/*}" && pwd -P)
|
|
|
|
exe=$(/usr/bin/xcrun --find "$arg0" 2>/dev/null)
|
|
if [ -x "$exe" -a "${exe%/*}" != "$SUPERBIN" ]; then
|
|
exec "$exe" "$@"
|
|
fi
|
|
|
|
old_IFS=$IFS
|
|
IFS=:
|
|
for path in $PATH; do
|
|
if [ "$path" = "$SUPERBIN" ]; then
|
|
continue
|
|
fi
|
|
|
|
exe="${path}/${arg0}"
|
|
if [ -x "$exe" ]; then
|
|
exec "$exe" "$@"
|
|
fi
|
|
done
|
|
IFS=$old_IFS
|
|
|
|
echo >&2 "
|
|
Failed to execute $arg0 $@
|
|
|
|
Xcode and/or the CLT appear to be misconfigured. Try one or both of the following:
|
|
xcodebuild -license
|
|
sudo xcode-select -switch /path/to/Xcode.app
|
|
"
|
|
exit 1
|