Skip to content
Snippets Groups Projects
Commit 3755b33a authored by Jack Nagel's avatar Jack Nagel
Browse files

Refactor Xcode/CLT version checks

parent b2ff6e93
No related branches found
No related tags found
No related merge requests found
......@@ -215,33 +215,38 @@ def check_for_broken_symlinks
end
end
def check_for_latest_xcode
if not MacOS::Xcode.installed?
if MacOS.version >= 10.7
if not MacOS::CLT.installed?
<<-EOS.undent
No developer tools installed
You should install the Command Line Tools: http://connect.apple.com
EOS
elsif not MacOS::CLT.latest_version?
<<-EOS.undent
A newer Command Line Tools for Xcode release is available
You should install the latest version from: http://connect.apple.com
EOS
end
else
<<-EOS.undent
Xcode not installed
Most stuff needs Xcode to build: http://developer.apple.com/xcode/
EOS
end
elsif MacOS::Xcode.version < MacOS::Xcode.latest_version then <<-EOS.undent
def check_xcode_clt
if MacOS::Xcode.installed?
__check_xcode_up_to_date
elsif MacOS.version >= 10.7
__check_clt_up_to_date
else <<-EOS.undent
Xcode not installed
Most stuff needs Xcode to build: http://developer.apple.com/xcode/
EOS
end
end
def __check_xcode_up_to_date
if MacOS::Xcode.outdated? then <<-EOS.undent
Your Xcode (#{MacOS::Xcode.version}) is outdated
Please install Xcode #{MacOS::Xcode.latest_version}.
EOS
end
end
def __check_clt_up_to_date
if not MacOS::CLT.installed? then <<-EOS.undent
No developer tools installed
You should install the Command Line Tools: http://connect.apple.com
EOS
elsif MacOS::CLT.outdated? then <<-EOS.undent
A newer Command Line Tools for Xcode release is available
You should install the latest version from: http://connect.apple.com
EOS
end
end
def check_for_stray_developer_directory
# if the uninstaller script isn't there, it's a good guess neither are
# any troublesome leftover Xcode files
......@@ -271,7 +276,7 @@ def check_cc
end
def check_standard_compilers
return if check_for_latest_xcode # only check if Xcode is up to date
return if check_xcode_clt # only check if Xcode is up to date
compiler_status = MacOS.compilers_standard?
if not compiler_status and not compiler_status.nil? then <<-EOS.undent
Your compilers are different from the standard versions for your Xcode.
......
......@@ -42,7 +42,7 @@ module Homebrew extend self
def check_xcode
require 'cmd/doctor'
checks = Checks.new
%w{check_for_latest_xcode check_xcode_license_approved}.each do |check|
%w{check_xcode_clt check_xcode_license_approved}.each do |check|
out = checks.send(check)
opoo out unless out.nil?
end
......
......@@ -19,17 +19,18 @@ module MacOS::Xcode extend self
def latest_version
case MacOS.version
when 10.5 then "3.1.4"
when 10.6 then "3.2.6"
when 10.5 then "3.1.4"
when 10.6 then "3.2.6"
when 10.7..10.8 then "4.6.2"
else
if MacOS.version >= 10.7
"4.6.2"
else
raise "Mac OS X `#{MacOS.version}' is invalid"
end
raise "Mac OS X '#{MacOS.version}' is invalid"
end
end
def outdated?
version < latest_version
end
def prefix
@prefix ||= begin
path = Pathname.new(folder)
......@@ -158,6 +159,10 @@ module MacOS::CLT extend self
$1.to_i >= 425 and $3.to_i >= 28
end
def outdated?
!latest_version?
end
def version
# The pkgutils calls are slow, don't repeat if no CLT installed.
return @version if @version_determined
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment