aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/compilers.rb
diff options
context:
space:
mode:
authorJack Nagel2014-06-11 21:05:31 -0500
committerJack Nagel2014-06-11 21:23:05 -0500
commitc319eb1f01c462eae8ce7e4cc29f525a464579a8 (patch)
tree59b977168431a1a60ef9216f6b0dc2c3bcf84336 /Library/Homebrew/compilers.rb
parent290db72bd5b48c76b892a4f4c5609667aff8d2ef (diff)
downloadbrew-c319eb1f01c462eae8ce7e4cc29f525a464579a8.tar.bz2
Decouple CompilerSelector from MacOS, clean up tests
Diffstat (limited to 'Library/Homebrew/compilers.rb')
-rw-r--r--Library/Homebrew/compilers.rb9
1 files changed, 5 insertions, 4 deletions
diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb
index a1e488bd7..7afa7a12e 100644
--- a/Library/Homebrew/compilers.rb
+++ b/Library/Homebrew/compilers.rb
@@ -94,11 +94,12 @@ class CompilerQueue
end
class CompilerSelector
- def initialize(f)
+ def initialize(f, versions=MacOS)
@f = f
+ @versions = versions
@compilers = CompilerQueue.new
%w{clang llvm gcc gcc_4_0}.map(&:to_sym).each do |cc|
- version = MacOS.send("#{cc}_build_version")
+ version = @versions.send("#{cc}_build_version")
unless version.nil?
@compilers << Compiler.new(cc, version, priority_for(cc))
end
@@ -107,7 +108,7 @@ class CompilerSelector
# non-Apple GCC 4.x
SharedEnvExtension::GNU_GCC_VERSIONS.each do |v|
name = "gcc-4.#{v}"
- version = MacOS.non_apple_gcc_version(name)
+ version = @versions.non_apple_gcc_version(name)
unless version.nil?
# priority is based on version, with newest preferred first
@compilers << Compiler.new(name, version, 1.0 + v/10.0)
@@ -133,7 +134,7 @@ class CompilerSelector
def priority_for(cc)
case cc
- when :clang then MacOS.clang_build_version >= 318 ? 3 : 0.5
+ when :clang then @versions.clang_build_version >= 318 ? 3 : 0.5
when :gcc then 2.5
when :llvm then 2
when :gcc_4_0 then 0.25