Module: OS::Linux::DevelopmentTools Private
- Extended by:
- T::Helpers
- Defined in:
- extend/os/linux/development_tools.rb
This module is part of a private API. This module may only be used in the Homebrew/brew repository. Third parties should avoid using this module if possible, as it may be removed or changed without warning.
Instance Method Summary collapse
- #build_system_info ⇒ Hash{String => String, nil} private
- #default_compiler ⇒ Symbol private
- #locate(tool) ⇒ Pathname? private
- #needs_compiler_formula? ⇒ Boolean private
- #needs_libc_formula? ⇒ Boolean private
Instance Method Details
#build_system_info ⇒ Hash{String => String, nil}
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
54 55 56 57 58 59 |
# File 'extend/os/linux/development_tools.rb', line 54 def build_system_info super.merge({ "glibc_version" => OS::Linux::Glibc.version.to_s.presence, "oldest_cpu_family" => Hardware.oldest_cpu.to_s, }) end |
#default_compiler ⇒ Symbol
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
30 |
# File 'extend/os/linux/development_tools.rb', line 30 def default_compiler = :gcc |
#locate(tool) ⇒ Pathname?
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'extend/os/linux/development_tools.rb', line 12 def locate(tool) @locate ||= T.let({}, T.nilable(T::Hash[T.any(String, Symbol), Pathname])) @locate.fetch(tool) do |key| @locate[key] = if ::DevelopmentTools.needs_build_formulae? && (binutils_path = HOMEBREW_PREFIX/"opt/binutils/bin/#{tool}").executable? binutils_path elsif ::DevelopmentTools.needs_build_formulae? && (glibc_path = HOMEBREW_PREFIX/"opt/glibc/bin/#{tool}").executable? glibc_path elsif (homebrew_path = HOMEBREW_PREFIX/"bin/#{tool}").executable? homebrew_path elsif File.executable?((system_path = "/usr/bin/#{tool}")) Pathname.new system_path end end end |
#needs_compiler_formula? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
41 42 43 44 45 46 47 48 49 50 51 |
# File 'extend/os/linux/development_tools.rb', line 41 def needs_compiler_formula? return @needs_compiler_formula unless @needs_compiler_formula.nil? gcc = "/usr/bin/gcc" @needs_compiler_formula = T.let(if File.exist?(gcc) ::DevelopmentTools.gcc_version(gcc) < OS::LINUX_GCC_CI_VERSION else true end, T.nilable(T::Boolean)) !!@needs_compiler_formula end |
#needs_libc_formula? ⇒ Boolean
This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.
33 34 35 36 37 38 |
# File 'extend/os/linux/development_tools.rb', line 33 def needs_libc_formula? return @needs_libc_formula unless @needs_libc_formula.nil? @needs_libc_formula = T.let(OS::Linux::Glibc.below_ci_version?, T.nilable(T::Boolean)) @needs_libc_formula = !!@needs_libc_formula end |