From 290db72bd5b48c76b892a4f4c5609667aff8d2ef Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Wed, 11 Jun 2014 21:03:23 -0500 Subject: Pass the version into the Compiler constructor, eliminate a type check --- Library/Homebrew/compilers.rb | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'Library/Homebrew/compilers.rb') diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb index eb13cd9f6..a1e488bd7 100644 --- a/Library/Homebrew/compilers.rb +++ b/Library/Homebrew/compilers.rb @@ -1,13 +1,4 @@ -class Compiler < Struct.new(:name, :priority) - # The full version of the compiler for comparison purposes. - def version - if name.is_a? String - MacOS.non_apple_gcc_version(name) - else - MacOS.send("#{name}_build_version") - end - end - +class Compiler < Struct.new(:name, :version, :priority) # This is exposed under the `build` name for compatibility, since # `fails_with` continues to use `build` in the public API. # `build` indicates the build number of an Apple compiler. @@ -107,16 +98,19 @@ class CompilerSelector @f = f @compilers = CompilerQueue.new %w{clang llvm gcc gcc_4_0}.map(&:to_sym).each do |cc| - unless MacOS.send("#{cc}_build_version").nil? - @compilers << Compiler.new(cc, priority_for(cc)) + version = MacOS.send("#{cc}_build_version") + unless version.nil? + @compilers << Compiler.new(cc, version, priority_for(cc)) end end # non-Apple GCC 4.x SharedEnvExtension::GNU_GCC_VERSIONS.each do |v| - unless MacOS.non_apple_gcc_version("gcc-4.#{v}").nil? + name = "gcc-4.#{v}" + version = MacOS.non_apple_gcc_version(name) + unless version.nil? # priority is based on version, with newest preferred first - @compilers << Compiler.new("gcc-4.#{v}", 1.0 + v/10.0) + @compilers << Compiler.new(name, version, 1.0 + v/10.0) end end end -- cgit v1.2.3