Skip to content
Snippets Groups Projects
Unverified Commit b1eb96df authored by Mike McQuaid's avatar Mike McQuaid Committed by GitHub
Browse files

Merge pull request #6831 from MikeMcQuaid/xcode_clt_version

os/mac/xcode: bump Xcode/CLT versions (and cleanup)
parents 277a8b22 ebc764e8
No related branches found
No related tags found
No related merge requests found
......@@ -41,10 +41,6 @@ class SystemConfig
@clt ||= MacOS::CLT.version if MacOS::CLT.installed?
end
def clt_headers
@clt_headers ||= MacOS::CLT.headers_version if MacOS::CLT.headers_installed?
end
def xquartz
@xquartz ||= "#{MacOS::XQuartz.version} => #{describe_path(MacOS::XQuartz.prefix)}" if MacOS::XQuartz.installed?
end
......@@ -54,7 +50,6 @@ class SystemConfig
f.puts "macOS: #{MacOS.full_version}-#{kernel}"
f.puts "CLT: #{clt || "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
end
end
......
......@@ -16,13 +16,13 @@ module OS
when "10.11" then "8.2.1"
when "10.12" then "9.2"
when "10.13" then "10.1"
when "10.14" then "10.2.1"
when "10.15" then "11.2.1"
when "10.14" then "11.3"
when "10.15" then "11.3"
else
raise "macOS '#{MacOS.version}' is invalid" unless OS::Mac.prerelease?
# Default to newest known version of Xcode for unreleased macOS versions.
"11.2.1"
"11.3"
end
end
......@@ -176,8 +176,8 @@ module OS
when 90 then "9.2"
when 91 then "9.4"
when 100 then "10.2.1"
when 110 then "11.2.1"
else "11.2.1"
when 110 then "11.3"
else "11.3"
end
end
......@@ -193,9 +193,6 @@ module OS
EXECUTABLE_PKG_ID = "com.apple.pkg.CLTools_Executables"
MAVERICKS_NEW_PKG_ID = "com.apple.pkg.CLTools_Base" # obsolete
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
def installed?
......@@ -210,14 +207,6 @@ module OS
version >= "8"
end
def headers_installed?
if !separate_header_package?
installed?
else
headers_version == version
end
end
def sdk(v = nil)
@locator ||= CLTSDKLocator.new
......@@ -242,12 +231,12 @@ module OS
end
end
def latest_version
def latest_clang_version
# 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
# CLT package for 10.11 that contains the Clang version from Xcode 8.
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.13" then "1000.10.44.2"
when "10.12" then "900.0.39.2"
......@@ -277,7 +266,7 @@ module OS
clang_version = detect_clang_version
return false unless clang_version
::Version.new(clang_version) < latest_version
::Version.new(clang_version) < latest_clang_version
end
def detect_clang_version
......@@ -291,6 +280,10 @@ module OS
version_output[/clang-(\d+\.\d+\.\d+(\.\d+)?)/, 1]
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.
# Note, that different ways to install the CLTs lead to different
# version numbers.
......@@ -302,19 +295,6 @@ module OS
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
version = nil
[EXECUTABLE_PKG_ID, MAVERICKS_NEW_PKG_ID].each do |id|
......@@ -324,7 +304,7 @@ module OS
return version if version
end
detect_clang_version
detect_version_from_clang_version
end
end
end
......
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