Use a hash to cache compiler version lookups

This commit is contained in:
Jack Nagel 2014-07-13 10:50:56 -05:00
parent fe0c018a1a
commit 237fa3164d

View File

@ -121,16 +121,12 @@ module OS
end
def non_apple_gcc_version(cc)
path = HOMEBREW_PREFIX.join("opt/gcc/bin/#{cc}")
path = nil unless path.exist?
return unless path ||= locate(cc)
ivar = "@#{cc.gsub(/(-|\.)/, '')}_version"
return instance_variable_get(ivar) if instance_variable_defined?(ivar)
`#{path} --version` =~ /gcc(-\d\.\d \(.+\))? (\d\.\d\.\d)/
instance_variable_set(ivar, $2)
(@non_apple_gcc_version ||= {}).fetch(cc) do
path = HOMEBREW_PREFIX.join("opt", "gcc", "bin", cc)
path = locate(cc) unless path.exist?
version = %x{#{path} --version}[/gcc(?:-\d\.\d \(.+\))? (\d\.\d\.\d)/, 1] if path
@non_apple_gcc_version[cc] = version
end
end
# See these issues for some history: