71 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			1.7 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.
 | |
| # HOMEBREW_DEVELOPER_DIR, HOMEBREW_SDKROOT and HOMEBREW_PREFER_CLT_PROXIES are set by extend/ENV/super.rb
 | |
| # shellcheck disable=SC2154
 | |
| 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
 | |
| 
 | |
| # shellcheck disable=SC2249
 | |
| 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}" || ! -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}" && "${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
 | 
