From 8a0861feab37b850059d29a0254f5c480e03d346 Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Thu, 15 Sep 2016 17:54:47 +1000 Subject: [PATCH] Warn when using Xcode 8 without CLT on 10.11 --- Library/Homebrew/extend/os/mac/diagnostic.rb | 14 ++++++++++++++ Library/Homebrew/test/test_os_mac_diagnostic.rb | 8 ++++++++ 2 files changed, 22 insertions(+) diff --git a/Library/Homebrew/extend/os/mac/diagnostic.rb b/Library/Homebrew/extend/os/mac/diagnostic.rb index 7fb13af85d560..f8d6c9e1f960b 100644 --- a/Library/Homebrew/extend/os/mac/diagnostic.rb +++ b/Library/Homebrew/extend/os/mac/diagnostic.rb @@ -9,6 +9,7 @@ def development_tools_checks check_for_installed_developer_tools check_xcode_license_approved check_for_osx_gcc_installer + check_xcode_8_without_clt_on_el_capitan ] end @@ -90,6 +91,19 @@ def check_clt_up_to_date EOS end + def check_xcode_8_without_clt_on_el_capitan + return unless MacOS::Xcode.without_clt? + # Scope this to Xcode 8 on El Cap for now + return unless MacOS.version == :el_capitan && MacOS::Xcode.version >= "8" + + <<-EOS.undent + You have Xcode 8 installed without the CLT; + this causes certain builds to fail on OS X 10.11. + Please install the CLT via: + sudo xcode-select --install + 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/test/test_os_mac_diagnostic.rb b/Library/Homebrew/test/test_os_mac_diagnostic.rb index a52179ac6f4b6..f7d43c4c70972 100644 --- a/Library/Homebrew/test/test_os_mac_diagnostic.rb +++ b/Library/Homebrew/test/test_os_mac_diagnostic.rb @@ -38,4 +38,12 @@ def test_check_for_beta_xquartz MacOS::XQuartz.stubs(:version).returns("2.7.10_beta2") assert_match "The following beta release of XQuartz is installed: 2.7.10_beta2", @checks.check_for_beta_xquartz end + + def test_check_xcode_8_without_clt_on_el_capitan + MacOS.stubs(:version).returns OS::Mac::Version.new("10.11") + MacOS::Xcode.stubs(:installed?).returns true + MacOS::Xcode.stubs(:version).returns "8.0" + MacOS::Xcode.stubs(:without_clt?).returns true + assert_match "You have Xcode 8 installed without the CLT", @checks.check_xcode_8_without_clt_on_el_capitan + end end