diff options
| author | Jack Nagel | 2012-07-25 15:04:46 -0500 |
|---|---|---|
| committer | Jack Nagel | 2012-08-01 00:31:38 -0500 |
| commit | 68b5fe1ca5a43234fa68a70ec707a77dd6d11cd4 (patch) | |
| tree | a0d9877f9ae9ef49e245a28a668299ced7ed928a /Library/Homebrew/xcode.rb | |
| parent | cd77baf2e2f75b4ae141414bf8ff6d5c732e2b9a (diff) | |
| download | homebrew-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.rb | 161 |
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 |
