Merge pull request #10769 from Bo98/big-sur-sdk

Migrating to the MacOSX11.sdk symlink
This commit is contained in:
Mike McQuaid 2021-08-11 15:21:00 +01:00 committed by GitHub
commit bee3e6725c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 30 additions and 24 deletions

View File

@ -433,9 +433,13 @@ module Homebrew
locator = MacOS.sdk_locator
source = if locator.source == :clt
return if MacOS::CLT.below_minimum_version? # Handled by other diagnostics.
update_instructions = MacOS::CLT.update_instructions
"Command Line Tools (CLT)"
else
return if MacOS::Xcode.below_minimum_version? # Handled by other diagnostics.
update_instructions = MacOS::Xcode.update_instructions
"Xcode"
end

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -23,7 +23,7 @@
# This should most probably benefit from getting a "Requires:" field added
# dynamically by configure.
#
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -1,4 +1,4 @@
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
homebrew_sdkroot=/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk
prefix=${homebrew_sdkroot}/usr
exec_prefix=/usr
libdir=${exec_prefix}/lib

View File

@ -9,7 +9,8 @@ module OS
#
# @api private
class SDK
VERSIONED_SDK_REGEX = /MacOSX(\d+\.\d+)\.sdk$/.freeze
# 11.x SDKs are explicitly excluded - we want the MacOSX11.sdk symlink instead.
VERSIONED_SDK_REGEX = /MacOSX(10\.\d+|\d+)\.sdk$/.freeze
attr_reader :version, :path, :source
@ -41,24 +42,23 @@ module OS
# Bail out if there is no SDK prefix at all
return @all_sdks unless File.directory? sdk_prefix
# Use unversioned SDK path on Big Sur to avoid issues such as:
# https://github.com/Homebrew/homebrew-core/issues/67075
unversioned_sdk_path = Pathname.new("#{sdk_prefix}/MacOSX.sdk")
version = read_sdk_version(unversioned_sdk_path)
if version && version >= :big_sur
unversioned_sdk_version = version
@all_sdks << SDK.new(unversioned_sdk_version, unversioned_sdk_path, source)
end
Dir["#{sdk_prefix}/MacOSX*.sdk"].each do |sdk_path|
next unless sdk_path.match?(SDK::VERSIONED_SDK_REGEX)
version = read_sdk_version(Pathname.new(sdk_path))
next if version.nil? || version == unversioned_sdk_version
next if version.nil?
@all_sdks << SDK.new(version, sdk_path, source)
end
# Fall back onto unversioned SDK if we've not found a suitable SDK
if @all_sdks.empty?
sdk_path = Pathname.new("#{sdk_prefix}/MacOSX.sdk")
if (version = read_sdk_version(sdk_path))
@all_sdks << SDK.new(version, sdk_path, source)
end
end
@all_sdks
end

View File

@ -336,7 +336,7 @@ module OS
def minimum_version
case MacOS.version
when "12" then "13.0.0"
when "11" then "12.0.0"
when "11" then "12.5.0"
when "10.15" then "11.0.0"
when "10.14" then "10.0.0"
when "10.13" then "9.0.0"

View File

@ -47,6 +47,8 @@ describe Homebrew::Diagnostic::Checks do
before do
allow(DevelopmentTools).to receive(:installed?).and_return(true)
allow(OS::Mac).to receive(:version).and_return(macos_version)
allow(OS::Mac::CLT).to receive(:below_minimum_version?).and_return(false)
allow(OS::Mac::Xcode).to receive(:below_minimum_version?).and_return(false)
end
it "doesn't trigger when SDK root is not needed" do