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
- #host_gcc_path ⇒ Object 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.
62 63 64 65 66 67 |
# File 'extend/os/linux/development_tools.rb', line 62 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 |
#host_gcc_path ⇒ Object
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.
43 44 45 46 |
# File 'extend/os/linux/development_tools.rb', line 43 def host_gcc_path # TODO: override this if/when we to pick the GCC based on e.g. the Ubuntu version. super end |
#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.
50 51 52 53 54 55 56 57 58 59 |
# File 'extend/os/linux/development_tools.rb', line 50 def needs_compiler_formula? return @needs_compiler_formula unless @needs_compiler_formula.nil? @needs_compiler_formula = T.let(nil, T.nilable(T::Boolean)) @needs_compiler_formula = if host_gcc_path.exist? ::DevelopmentTools.gcc_version(host_gcc_path.to_s) < OS::LINUX_GCC_CI_VERSION else true end 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 |