From ba61d3013a9fa50e0af1f0c9fa508582fa55e740 Mon Sep 17 00:00:00 2001 From: Max Howell Date: Fri, 17 Feb 2012 12:12:05 +0000 Subject: [PATCH] Work with Xcode 4.3 if user didn't install helper tools We ask Spotlight to find Xcode and use that path, neat right? --- Library/Homebrew/extend/ENV.rb | 2 +- Library/Homebrew/utils.rb | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb index 8a599fa817..b059927a6c 100644 --- a/Library/Homebrew/extend/ENV.rb +++ b/Library/Homebrew/extend/ENV.rb @@ -96,7 +96,7 @@ module HomebrewEnvExtension else # otherwise lets try and figure it out ourselves fn = "#{MacOS.dev_tools_path}/#{tool}" - if File.file? fn + if File.executable? fn fn else nil diff --git a/Library/Homebrew/utils.rb b/Library/Homebrew/utils.rb index 9f7ef663cd..bc0f570d9e 100644 --- a/Library/Homebrew/utils.rb +++ b/Library/Homebrew/utils.rb @@ -319,7 +319,16 @@ module MacOS extend self # fallback for broken Xcode 4.3 installs Pathname.new '/Applications/Xcode.app/Contents/Developer' else - nil + # Ask Spotlight where Xcode is. If the user didn't install the + # helper tools and installed Xcode in a non-conventional place, this + # is our only option. See: http://superuser.com/questions/390757 + path = `mdfind "kMDItemDisplayName==Xcode&&kMDItemKind==Application"` + path = "#{path}/Contents/Developer" + if path.empty? or not File.directory? path + nil + else + path + end end end end