Spec-Zone.ru › Homebrew

Модуль: OS::Mac::DevelopmentTools::ClassMethods Приватный

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

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

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

  • #build_system_info ⇒ Hash{String => String, nil} приватный
  • #curl_handles_most_https_certificates? ⇒ Boolean приватный
  • #custom_installation_instructions ⇒ String приватный
  • #default_compiler ⇒ Symbol приватный
  • #installation_instructions ⇒ String приватный
  • #installed? ⇒ Boolean приватный

    Проверяет, установлены ли у пользователя какие-либо инструменты разработчика — через Xcode или CLT.

  • #ld64_version ⇒ Version приватный
  • #locate(tool) ⇒ ::Pathname? приватный

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

#build_system_info ⇒ Hash{String => String, nil}

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

Возвращает:

  • (Hash{String => String, nil})


73
74
75
76
77
78
79
80
# File 'extend/os/mac/development_tools.rb', line 73

def build_system_info
  build_info = {
    "xcode"          => MacOS::Xcode.version.to_s.presence,
    "clt"            => MacOS::CLT.version.to_s.presence,
    "preferred_perl" => MacOS.preferred_perl_version,
  }
  super.merge build_info
end

#curl_handles_most_https_certificates? ⇒ Boolean

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

Возвращает:

  • (Boolean)


53
54
55
56
57
# File 'extend/os/mac/development_tools.rb', line 53

def curl_handles_most_https_certificates?
  # The system Curl is too old for some modern HTTPS certificates on
  # older macOS versions.
  ENV["HOMEBREW_SYSTEM_CURL_TOO_OLD"].nil?
end

#custom_installation_instructions ⇒ String

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

Возвращает:

  • (String)


65
66
67
68
69
70
# File 'extend/os/mac/development_tools.rb', line 65

def custom_installation_instructions
  <<~EOS
    Install GNU's GCC:
      brew install gcc
  EOS
end

#default_compiler ⇒ Symbol

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

Возвращает:

  • (Symbol)


36
37
38
# File 'extend/os/mac/development_tools.rb', line 36

def default_compiler
  :clang
end

#installation_instructions ⇒ String

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

Возвращает:

  • (String)


60
61
62
# File 'extend/os/mac/development_tools.rb', line 60

def installation_instructions
  MacOS::CLT.installation_instructions
end

#installed? ⇒ Boolean

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

Проверяет, установлены ли у пользователя какие-либо инструменты разработчика — через Xcode или CLT. Удобно для предотвращения сборки формул, если сборка невозможна.

Возвращает:

  • (Boolean)


31
32
33
# File 'extend/os/mac/development_tools.rb', line 31

def installed?
  MacOS::Xcode.installed? || MacOS::CLT.installed?
end

#ld64_version ⇒ Version

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

Возвращает:

  • (Version)


41
42
43
44
45
46
47
48
49
50
# File 'extend/os/mac/development_tools.rb', line 41

def ld64_version
  @ld64_version ||= T.let(begin
    json = Utils.popen_read("/usr/bin/ld", "-version_details")
    if $CHILD_STATUS.success?
      Version.parse(JSON.parse(json)["version"])
    else
      Version::NULL
    end
  end, T.nilable(Version))
end

#locate(tool) ⇒ ::Pathname?

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

Параметры:

  • tool (String, Symbol)

Возвращает:

  • (::Pathname, nil)


15
16
17
18
19
20
21
22
23
24
25
# File 'extend/os/mac/development_tools.rb', line 15

def locate(tool)
  @locate ||= T.let({}, T.nilable(T::Hash[T.any(String, Symbol), Pathname]))
  @locate.fetch(tool) do |key|
    @locate[key] = if (located_tool = super(tool))
      located_tool
    else
      path = Utils.popen_read("/usr/bin/xcrun", "-no-cache", "-find", tool.to_s, err: :close).chomp
      ::Pathname.new(path) if File.executable?(path)
    end
  end
end

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

Spec-Zone.ru

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