aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/compilers.rb
diff options
context:
space:
mode:
authorJack Nagel2014-06-11 21:03:23 -0500
committerJack Nagel2014-06-11 21:21:50 -0500
commit290db72bd5b48c76b892a4f4c5609667aff8d2ef (patch)
tree5a53dfdad323a3b1a5e91983ba7fb334df374a43 /Library/Homebrew/compilers.rb
parentf3e9c5c0706f001528b011e6241ceebd848a22fe (diff)
downloadbrew-290db72bd5b48c76b892a4f4c5609667aff8d2ef.tar.bz2
Pass the version into the Compiler constructor, eliminate a type check
Diffstat (limited to 'Library/Homebrew/compilers.rb')
-rw-r--r--Library/Homebrew/compilers.rb22
1 files changed, 8 insertions, 14 deletions
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