Модуль: 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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
36 37 38 | # File 'extend/os/mac/development_tools.rb', line 36 def default_compiler :clang end |
#installation_instructions ⇒ String
Этот метод является частью приватного API. Этот метод можно использовать только в репозитории Homebrew/brew. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. Удобно для предотвращения сборки формул, если сборка невозможна.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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. По возможности сторонним разработчикам следует избегать использования этого метода, поскольку он может быть удалён или изменён без предупреждения.
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