aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/xcode.rb
diff options
context:
space:
mode:
authorJack Nagel2012-07-25 15:04:46 -0500
committerJack Nagel2012-08-01 00:31:38 -0500
commit68b5fe1ca5a43234fa68a70ec707a77dd6d11cd4 (patch)
treea0d9877f9ae9ef49e245a28a668299ced7ed928a /Library/Homebrew/xcode.rb
parentcd77baf2e2f75b4ae141414bf8ff6d5c732e2b9a (diff)
downloadhomebrew-68b5fe1ca5a43234fa68a70ec707a77dd6d11cd4.tar.bz2
Move X11 machinery into MacOS::XQuartz namespace
In order to better support Xcode-only systems, where X11 libs and executables live under /usr/X11 but headers live in the SDK, move the x11_* helper methods into a new module. This allows us to keep some of the CLT/Xcode-only and Apple X11/XQuartz logic hidden from outside code, like ENV.x11. Since Apple's X11 is actually XQuartz, name the module "MacOS::XQuartz".
Diffstat (limited to 'Library/Homebrew/xcode.rb')
-rw-r--r--Library/Homebrew/xcode.rb161
1 files changed, 0 insertions, 161 deletions
diff --git a/Library/Homebrew/xcode.rb b/Library/Homebrew/xcode.rb
deleted file mode 100644
index 0c8139c62..000000000
--- a/Library/Homebrew/xcode.rb
+++ /dev/null
@@ -1,161 +0,0 @@
-module MacOS::Xcode extend self
-
- V4_BUNDLE_ID = "com.apple.dt.Xcode"
- V3_BUNDLE_ID = "com.apple.Xcode"
- V4_BUNDLE_PATH = Pathname.new("/Applications/Xcode.app")
- V3_BUNDLE_PATH = Pathname.new("/Developer/Applications/Xcode.app")
-
- # Locate the "current Xcode folder" via xcode-select. See:
- # man xcode-select
- def folder
- @folder ||= `xcode-select -print-path 2>/dev/null`.strip
- end
-
- # Xcode 4.3 tools hang if "/" is set
- def bad_xcode_select_path?
- folder == "/"
- end
-
- def prefix
- @prefix ||= begin
- path = Pathname.new folder
- if path.absolute? and (path/'usr/bin/make').executable?
- path
- elsif File.executable? '/Developer/usr/bin/make'
- # we do this to support cowboys who insist on installing
- # only a subset of Xcode
- Pathname.new '/Developer'
- elsif (V4_BUNDLE_PATH/'Contents/Developer/usr/bin/make').executable?
- # fallback for broken Xcode 4.3 installs
- V4_BUNDLE_PATH/'Contents/Developer'
- else
- # 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 = MacOS.app_with_bundle_id(V4_BUNDLE_ID) ||
- MacOS.app_with_bundle_id(V3_BUNDLE_ID)
-
- unless path.nil?
- path += "Contents/Developer"
- path if (path/'usr/bin/make').executable?
- end
- end
- end
- end
-
- def installed?
- # Telling us whether the Xcode.app is installed or not.
- @installed ||= V4_BUNDLE_PATH.exist? ||
- V3_BUNDLE_PATH.exist? ||
- MacOS.app_with_bundle_id(V4_BUNDLE_ID) ||
- MacOS.app_with_bundle_id(V3_BUNDLE_ID) ||
- false
- end
-
- def version
- # may return a version string
- # that is guessed based on the compiler, so do not
- # use it in order to check if Xcode is installed.
- @version ||= begin
- return "0" unless MACOS
-
- # this shortcut makes version work for people who don't realise you
- # need to install the CLI tools
- xcode43build = V4_BUNDLE_PATH/'Contents/Developer/usr/bin/xcodebuild'
- if xcode43build.file?
- `#{xcode43build} -version 2>/dev/null` =~ /Xcode (\d(\.\d)*)/
- return $1 if $1
- end
-
- # Xcode 4.3 xc* tools hang indefinately if xcode-select path is set thus
- raise if bad_xcode_select_path?
-
- raise unless which "xcodebuild"
- `xcodebuild -version 2>/dev/null` =~ /Xcode (\d(\.\d)*)/
- raise if $1.nil? or not $?.success?
- $1
- rescue
- # For people who's xcode-select is unset, or who have installed
- # xcode-gcc-installer or whatever other combinations we can try and
- # supprt. See https://github.com/mxcl/homebrew/wiki/Xcode
- case MacOS.llvm_build_version.to_i
- when 1..2063 then "3.1.0"
- when 2064..2065 then "3.1.4"
- when 2366..2325
- # we have no data for this range so we are guessing
- "3.2.0"
- when 2326
- # also applies to "3.2.3"
- "3.2.4"
- when 2327..2333 then "3.2.5"
- when 2335
- # this build number applies to 3.2.6, 4.0 and 4.1
- # https://github.com/mxcl/homebrew/wiki/Xcode
- "4.0"
- else
- case (MacOS.clang_version.to_f * 10).to_i
- when 0
- "dunno"
- when 1..14
- "3.2.2"
- when 15
- "3.2.4"
- when 16
- "3.2.5"
- when 17..20
- "4.0"
- when 21
- "4.1"
- when 22..30
- "4.2"
- when 31
- "4.3"
- when 40
- "4.4"
- else
- "4.4"
- end
- end
- end
- end
-
- def provides_autotools?
- version.to_f < 4.3
- end
-
- def provides_gcc?
- version.to_f < 4.3
- end
-end
-
-module MacOS::CLT extend self
- STANDALONE_PKG_ID = "com.apple.pkg.DeveloperToolsCLILeo"
- FROM_XCODE_PKG_ID = "com.apple.pkg.DeveloperToolsCLI"
-
- # This is true ift he standard UNIX tools are present under /usr. For
- # Xcode < 4.3, this is the standard location. Otherwise, it means that
- # the user has installed the "Command Line Tools for Xcode" package.
- def installed?
- MacOS.dev_tools_path == Pathname.new("/usr/bin")
- end
-
- def version
- # Version string (a pretty damn long one) of the CLT package.
- # Note, that different ways to install the CLTs lead to different
- # version numbers.
- @version ||= begin
- standalone = MacOS.pkgutil_info(STANDALONE_PKG_ID)
- from_xcode = MacOS.pkgutil_info(FROM_XCODE_PKG_ID)
-
- if not standalone.empty?
- standalone =~ /version: (.*)$/
- $1
- elsif not from_xcode.empty?
- from_xcode =~ /version: (.*)$/
- $1
- else
- nil
- end
- end
- end
-end