Don't hang if xcode-select -print-path is "/"
Introducing MacOS.xctools_fucked?. Refs Homebrew/homebrew#10293.
This commit is contained in:
parent
a7ade739dc
commit
61a8bd9ca0
@ -18,7 +18,7 @@ module Homebrew extend self
|
|||||||
value = env[k]
|
value = env[k]
|
||||||
if value
|
if value
|
||||||
results = value
|
results = value
|
||||||
if value =~ /^[^\s]*xcrun (.*)/
|
if value =~ %r{/usr/bin/xcrun (.*)}
|
||||||
path = `/usr/bin/xcrun -find #{$1}`
|
path = `/usr/bin/xcrun -find #{$1}`
|
||||||
results += " => #{path}"
|
results += " => #{path}"
|
||||||
elsif File.exists? value and File.symlink? value
|
elsif File.exists? value and File.symlink? value
|
||||||
|
|||||||
@ -94,7 +94,7 @@ module HomebrewEnvExtension
|
|||||||
def xcrun tool
|
def xcrun tool
|
||||||
if File.executable? "/usr/bin/#{tool}"
|
if File.executable? "/usr/bin/#{tool}"
|
||||||
"/usr/bin/#{tool}"
|
"/usr/bin/#{tool}"
|
||||||
elsif system "/usr/bin/xcrun -find #{tool} 2>1 1>/dev/null"
|
elsif not MacOS.xctools_fucked? and system "/usr/bin/xcrun -find #{tool} 2>1 1>/dev/null"
|
||||||
# xcrun was provided first with Xcode 4.3 and allows us to proxy
|
# xcrun was provided first with Xcode 4.3 and allows us to proxy
|
||||||
# tool usage thus avoiding various bugs
|
# tool usage thus avoiding various bugs
|
||||||
"/usr/bin/xcrun #{tool}"
|
"/usr/bin/xcrun #{tool}"
|
||||||
|
|||||||
@ -266,9 +266,17 @@ module MacOS extend self
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def xctools_fucked?
|
||||||
|
# Xcode 4.3 tools hang if "/" is set
|
||||||
|
`/usr/bin/xcode-select -print-path 2>/dev/null`.chomp == "/"
|
||||||
|
end
|
||||||
|
|
||||||
def default_cc
|
def default_cc
|
||||||
cc = `/usr/bin/xcrun -find cc 2> /dev/null`.chomp
|
cc = unless xctools_fucked?
|
||||||
cc = "#{dev_tools_path}/cc" if cc.empty? or not $?.success?
|
out = `/usr/bin/xcrun -find cc 2> /dev/null`.chomp
|
||||||
|
out if $?.success?
|
||||||
|
end
|
||||||
|
cc = "#{dev_tools_path}/cc" if cc.nil? or cc.empty?
|
||||||
|
|
||||||
unless File.executable? cc
|
unless File.executable? cc
|
||||||
# If xcode-select isn't setup then xcrun fails and on Xcode 4.3
|
# If xcode-select isn't setup then xcrun fails and on Xcode 4.3
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user