Merge pull request #6831 from MikeMcQuaid/xcode_clt_version

os/mac/xcode: bump Xcode/CLT versions (and cleanup)
This commit is contained in:
Mike McQuaid 2019-12-11 14:14:28 +00:00 committed by GitHub
commit b1eb96dfdd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 38 deletions

View File

@ -41,10 +41,6 @@ class SystemConfig
@clt ||= MacOS::CLT.version if MacOS::CLT.installed? @clt ||= MacOS::CLT.version if MacOS::CLT.installed?
end end
def clt_headers
@clt_headers ||= MacOS::CLT.headers_version if MacOS::CLT.headers_installed?
end
def xquartz def xquartz
@xquartz ||= "#{MacOS::XQuartz.version} => #{describe_path(MacOS::XQuartz.prefix)}" if MacOS::XQuartz.installed? @xquartz ||= "#{MacOS::XQuartz.version} => #{describe_path(MacOS::XQuartz.prefix)}" if MacOS::XQuartz.installed?
end end
@ -54,7 +50,6 @@ class SystemConfig
f.puts "macOS: #{MacOS.full_version}-#{kernel}" f.puts "macOS: #{MacOS.full_version}-#{kernel}"
f.puts "CLT: #{clt || "N/A"}" f.puts "CLT: #{clt || "N/A"}"
f.puts "Xcode: #{xcode || "N/A"}" f.puts "Xcode: #{xcode || "N/A"}"
f.puts "CLT headers: #{clt_headers}" if MacOS::CLT.separate_header_package? && clt_headers
f.puts "XQuartz: #{xquartz}" if xquartz f.puts "XQuartz: #{xquartz}" if xquartz
end end
end end

View File

@ -16,13 +16,13 @@ module OS
when "10.11" then "8.2.1" when "10.11" then "8.2.1"
when "10.12" then "9.2" when "10.12" then "9.2"
when "10.13" then "10.1" when "10.13" then "10.1"
when "10.14" then "10.2.1" when "10.14" then "11.3"
when "10.15" then "11.2.1" when "10.15" then "11.3"
else else
raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease? raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
# Default to newest known version of Xcode for unreleased macOS versions. # Default to newest known version of Xcode for unreleased macOS versions.
"11.2.1" "11.3"
end end
end end
@ -176,8 +176,8 @@ module OS
when 90 then "9.2" when 90 then "9.2"
when 91 then "9.4" when 91 then "9.4"
when 100 then "10.2.1" when 100 then "10.2.1"
when 110 then "11.2.1" when 110 then "11.3"
else "11.2.1" else "11.3"
end end
end end
@ -193,9 +193,6 @@ module OS
EXECUTABLE_PKG_ID = "com.apple.pkg.CLTools_Executables" EXECUTABLE_PKG_ID = "com.apple.pkg.CLTools_Executables"
MAVERICKS_NEW_PKG_ID = "com.apple.pkg.CLTools_Base" # obsolete MAVERICKS_NEW_PKG_ID = "com.apple.pkg.CLTools_Base" # obsolete
PKG_PATH = "/Library/Developer/CommandLineTools" PKG_PATH = "/Library/Developer/CommandLineTools"
HEADER_PKG_PATH =
"/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_:macos_version.pkg"
HEADER_PKG_ID = "com.apple.pkg.macOS_SDK_headers_for_macOS_10.14"
# Returns true even if outdated tools are installed # Returns true even if outdated tools are installed
def installed? def installed?
@ -210,14 +207,6 @@ module OS
version >= "8" version >= "8"
end end
def headers_installed?
if !separate_header_package?
installed?
else
headers_version == version
end
end
def sdk(v = nil) def sdk(v = nil)
@locator ||= CLTSDKLocator.new @locator ||= CLTSDKLocator.new
@ -242,12 +231,12 @@ module OS
end end
end end
def latest_version def latest_clang_version
# As of Xcode 8 CLT releases are no longer in sync with Xcode releases # As of Xcode 8 CLT releases are no longer in sync with Xcode releases
# on the older supported platform for that Xcode release, i.e there's no # on the older supported platform for that Xcode release, i.e there's no
# CLT package for 10.11 that contains the Clang version from Xcode 8. # CLT package for 10.11 that contains the Clang version from Xcode 8.
case MacOS.version case MacOS.version
when "10.15" then "1100.0.33.12" when "10.15" then "1100.0.33.16"
when "10.14" then "1001.0.46.4" when "10.14" then "1001.0.46.4"
when "10.13" then "1000.10.44.2" when "10.13" then "1000.10.44.2"
when "10.12" then "900.0.39.2" when "10.12" then "900.0.39.2"
@ -277,7 +266,7 @@ module OS
clang_version = detect_clang_version clang_version = detect_clang_version
return false unless clang_version return false unless clang_version
::Version.new(clang_version) < latest_version ::Version.new(clang_version) < latest_clang_version
end end
def detect_clang_version def detect_clang_version
@ -291,6 +280,10 @@ module OS
version_output[/clang-(\d+\.\d+\.\d+(\.\d+)?)/, 1] version_output[/clang-(\d+\.\d+\.\d+(\.\d+)?)/, 1]
end end
def detect_version_from_clang_version
detect_clang_version&.sub(/^(\d+)00\./, "\\1.")
end
# Version string (a pretty long one) of the CLT package. # Version string (a pretty long one) of the CLT package.
# Note, that different ways to install the CLTs lead to different # Note, that different ways to install the CLTs lead to different
# version numbers. # version numbers.
@ -302,19 +295,6 @@ module OS
end end
end end
# Version string of the header package, which is a
# separate package as of macOS 10.14.
def headers_version
if !separate_header_package?
version
else
@header_version ||= MacOS.pkgutil_info(HEADER_PKG_ID)[/version: (.+)$/, 1]
return ::Version::NULL unless @header_version
::Version.new(@header_version)
end
end
def detect_version def detect_version
version = nil version = nil
[EXECUTABLE_PKG_ID, MAVERICKS_NEW_PKG_ID].each do |id| [EXECUTABLE_PKG_ID, MAVERICKS_NEW_PKG_ID].each do |id|
@ -324,7 +304,7 @@ module OS
return version if version return version if version
end end
detect_clang_version detect_version_from_clang_version
end end
end end
end end