xcrun: actually try fallbacks
xcrun has a lot of fallbacks if the first case fails but never actually reaches them on CLT systems since it doesn't check the validity of the first path before executing it. (When should it reach these? Mainly for non-Xcode compilers we support, e.g. apple-gcc42 which can be found by xcrun but which isn't in /usr/bin) The xcrun invocation also needed chomping.
This commit is contained in:
parent
adf90691f1
commit
88609dd6ed
@ -8,14 +8,16 @@ require "#{File.dirname __FILE__}/../libsuperenv"
|
||||
SUPERBIN = __FILE__.dirname.cleanpath.freeze
|
||||
|
||||
exec "/usr/bin/xcrun", *ARGV if ARGV.empty? or ARGV[0][0..0] == '-'
|
||||
exec "/usr/bin/#{ARGV.shift}", *ARGV unless ENV['HOMEBREW_SDKROOT'].directory?
|
||||
if File.exist?("/usr/bin/#{ARGV.first}")
|
||||
exec "/usr/bin/#{ARGV.shift}", *ARGV unless ENV['HOMEBREW_SDKROOT'].directory?
|
||||
end
|
||||
|
||||
def try path
|
||||
exec path, *ARGV if File.executable?(path) and path.cleanpath.dirname != SUPERBIN
|
||||
end
|
||||
|
||||
arg0 = ARGV.shift
|
||||
try `/usr/bin/xcrun --find #{arg0}`
|
||||
try `/usr/bin/xcrun --find #{arg0}`.chomp
|
||||
# Nuts, Xcode is not setup properly or something. Try to find the tools anyway!
|
||||
try "/Applications/Xcode.app/Contents/Developer/usr/bin/#{arg0}"
|
||||
try "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/#{arg0}"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user