Spec-Zone.ru › Homebrew

Модуль: OS::Mac::SystemConfig::ClassMethods Закрытый

Расширено модулем:
T::Helpers
Определено в:
extend/os/mac/system_config.rb

Этот модуль является частью закрытого API. Этот модуль можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого модуля, поскольку он может быть удалён или изменён без предупреждения.

Краткое описание методов экземпляра свернуть

  • #clt ⇒ Version? закрытый
  • #core_tap_config(out = $stdout) ⇒ void закрытый
  • #describe_clang ⇒ String закрытый
  • #dump_verbose_config(out = $stdout) ⇒ void закрытый
  • #initialize ⇒ void закрытый
  • #metal_toolchain ⇒ String? закрытый
  • #xcode ⇒ String? закрытый

Подробное описание методов экземпляра

#clt ⇒ Version?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (Version, nil)


38
39
40
# File 'extend/os/mac/system_config.rb', line 38

def clt
  @clt ||= MacOS::CLT.version if MacOS::CLT.installed?
end

#core_tap_config(out = $stdout) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • out (File, StringIO, IO) (по умолчанию: $stdout)


43
44
45
46
# File 'extend/os/mac/system_config.rb', line 43

def core_tap_config(out = $stdout)
  dump_tap_config(CoreTap.instance, out)
  dump_tap_config(CoreCaskTap.instance, out)
end

#describe_clang ⇒ String

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String)


21
22
23
24
25
26
# File 'extend/os/mac/system_config.rb', line 21

def describe_clang
  return "N/A" if ::SystemConfig.clang.null?

  clang_build_info = ::SystemConfig.clang_build.null? ? "(parse error)" : ::SystemConfig.clang_build
  "#{::SystemConfig.clang} build #{clang_build_info}"
end

#dump_verbose_config(out = $stdout) ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Этот метод возвращает неопределённое значение.

Параметры:

  • out (File, StringIO, IO) (по умолчанию: $stdout)


65
66
67
68
69
70
71
72
73
74
75
# File 'extend/os/mac/system_config.rb', line 65

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 ::Hardware::CPU.arm64? && 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

#initialize ⇒ void

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.



15
16
17
18
# File 'extend/os/mac/system_config.rb', line 15

def initialize
  @xcode = T.let(nil, T.nilable(String))
  @clt = T.let(nil, T.nilable(Version))
end

#metal_toolchain ⇒ String?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String, nil)


49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'extend/os/mac/system_config.rb', line 49

def metal_toolchain
  return unless ::Hardware::CPU.arm64?

  @metal_toolchain ||= T.let(nil, T.nilable(String))
  @metal_toolchain ||= if MacOS::Xcode.installed? || MacOS::CLT.installed?
    result = SystemCommand.run("xcrun", args: ["--find", "metal"],
                               print_stderr: false, print_stdout: false)
    pattern = /MetalToolchain-v(?<major>\d+)\.(?<letter>\d+)\.(?<build>\d+)\.(?<minor>\d+)/
    if result.success? && (m = result.stdout.match(pattern))
      letter = ("A".ord - 1 + m[:letter].to_i).chr
      "#{m[:major]}.#{m[:minor]} (#{m[:major]}#{letter}#{m[:build]})"
    end
  end
end

#xcode ⇒ String?

Этот метод является частью закрытого API. Этот метод можно использовать только в репозитории Homebrew/brew. Сторонним разработчикам по возможности следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.

Возвращает:

  • (String, nil)


29
30
31
32
33
34
35
# File 'extend/os/mac/system_config.rb', line 29

def xcode
  @xcode ||= if MacOS::Xcode.installed?
    xcode = MacOS::Xcode.version.to_s
    xcode += " => #{MacOS::Xcode.prefix}" unless MacOS::Xcode.default_prefix?
    xcode
  end
end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/OS/Mac/SystemConfig/ClassMethods.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API