aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike McQuaid2017-11-17 19:53:38 +0000
committerMike McQuaid2017-11-17 21:35:49 +0000
commitcd0db51343ff7c5a35173594725978c81c36c0fc (patch)
tree760fd5cb41f0b85d06b7257792a42ff1a6efa826
parent889fc8190603dc277ed5f5beee94e667e81e64f8 (diff)
downloadbrew-cd0db51343ff7c5a35173594725978c81c36c0fc.tar.bz2
diagnostic: check if Xcode needs CLT installed.
Require the CLT on all but the latest version of macOS to avoid the continuous workarounds for SDK weirdness.
-rw-r--r--Library/Homebrew/extend/os/mac/diagnostic.rb10
-rw-r--r--Library/Homebrew/os/mac.rb17
-rw-r--r--Library/Homebrew/os/mac/xcode.rb9
3 files changed, 32 insertions, 4 deletions
diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb
index 5c603ca62..f0b923f21 100644
--- a/Library/Homebrew/extend/os/mac/diagnostic.rb
+++ b/Library/Homebrew/extend/os/mac/diagnostic.rb
@@ -19,6 +19,7 @@ module Homebrew
%w[
check_xcode_minimum_version
check_clt_minimum_version
+ check_if_xcode_needs_clt_installed
].freeze
end
@@ -124,6 +125,15 @@ module Homebrew
EOS
end
+ def check_if_xcode_needs_clt_installed
+ return unless MacOS::Xcode.needs_clt_installed?
+
+ <<~EOS
+ Xcode alone is not sufficient on #{MacOS.version.pretty_name}.
+ #{DevelopmentTools.installation_instructions}
+ EOS
+ end
+
def check_for_osx_gcc_installer
return unless MacOS.version < "10.7" || ((MacOS::Xcode.version || "0") > "4.1")
return unless DevelopmentTools.clang_version == "2.1"
diff --git a/Library/Homebrew/os/mac.rb b/Library/Homebrew/os/mac.rb
index 9215e3c96..ade801c42 100644
--- a/Library/Homebrew/os/mac.rb
+++ b/Library/Homebrew/os/mac.rb
@@ -31,16 +31,25 @@ module OS
@version = nil
end
- def prerelease?
- # TODO: bump version when new OS is released
- version >= "10.14"
+ def latest_sdk_version
+ # TODO: bump version when new Xcode macOS SDK is released
+ Version.new "10.13"
+ end
+
+ def latest_stable_version
+ # TODO: bump version when new macOS is released
+ Version.new "10.13"
end
def outdated_release?
- # TODO: bump version when new OS is released
+ # TODO: bump version when new macOS is released
version < "10.11"
end
+ def prerelease?
+ version > latest_stable_version
+ end
+
def cat
version.to_sym
end
diff --git a/Library/Homebrew/os/mac/xcode.rb b/Library/Homebrew/os/mac/xcode.rb
index 96be56e3b..ae725d948 100644
--- a/Library/Homebrew/os/mac/xcode.rb
+++ b/Library/Homebrew/os/mac/xcode.rb
@@ -40,6 +40,15 @@ module OS
version < minimum_version
end
+ def latest_sdk_version?
+ OS::Mac.version == OS::Mac.latest_sdk_version
+ end
+
+ def needs_clt_installed?
+ return false if latest_sdk_version?
+ without_clt?
+ end
+
def outdated?
return false unless installed?
version < latest_version