diff --git a/Library/Homebrew/extend/os/mac/system_config.rb b/Library/Homebrew/extend/os/mac/system_config.rb index 68d377813958f..a6371cec60ed5 100644 --- a/Library/Homebrew/extend/os/mac/system_config.rb +++ b/Library/Homebrew/extend/os/mac/system_config.rb @@ -45,12 +45,25 @@ def core_tap_config(out = $stdout) dump_tap_config(CoreCaskTap.instance, out) end + sig { returns(T.nilable(String)) } + def metal_toolchain + @metal_toolchain ||= T.let(if MacOS::Xcode.installed? || MacOS::CLT.installed? + result = SystemCommand.run("xcrun", args: ["metal", "-v"], + print_stderr: false, print_stdout: false) + "present" if result.success? + end, T.nilable(String)) + end + sig { params(out: T.any(File, StringIO, IO)).void } def dump_verbose_config(out = $stdout) super out.puts "macOS: #{MacOS.full_version}-#{kernel}" out.puts "CLT: #{clt || "N/A"}" out.puts "Xcode: #{xcode || "N/A"}" + # Metal Toolchain is a separate install starting with Xcode 26. + if MacOS::Xcode.installed? && MacOS::Xcode.version >= "26.0" + out.puts "Metal Toolchain: #{metal_toolchain || "N/A"}" + end out.puts "Rosetta 2: #{::Hardware::CPU.in_rosetta2?}" if ::Hardware::CPU.physical_cpu_arm64? end end