diff --git a/Library/Homebrew/build.rb b/Library/Homebrew/build.rb index 8d7d553eca..88a216dc2f 100755 --- a/Library/Homebrew/build.rb +++ b/Library/Homebrew/build.rb @@ -114,7 +114,7 @@ def install f end end - CompilerSelector.new(f).select_compiler if f.fails_with? ENV.compiler + ENV.send(CompilerSelector.new(f).compiler) if f.fails_with? ENV.compiler f.brew do if ARGV.flag? '--git' diff --git a/Library/Homebrew/compilers.rb b/Library/Homebrew/compilers.rb index fb42c5e30e..0e65301d5d 100644 --- a/Library/Homebrew/compilers.rb +++ b/Library/Homebrew/compilers.rb @@ -56,11 +56,11 @@ class CompilerSelector end end - def select_compiler + def compiler begin cc = @compilers.pop end while @f.fails_with?(cc) - ENV.send(cc.name) unless cc.nil? + cc.nil? ? @old_compiler : cc.name end private diff --git a/Library/Homebrew/test/test_compilers.rb b/Library/Homebrew/test/test_compilers.rb index a30311611a..8f93c1423e 100644 --- a/Library/Homebrew/test/test_compilers.rb +++ b/Library/Homebrew/test/test_compilers.rb @@ -2,14 +2,6 @@ require 'testing_env' require 'test/testball' class CompilerTests < Test::Unit::TestCase - def setup - %w{HOMEBREW_USE_CLANG HOMEBREW_USE_LLVM HOMEBREW_USE_GCC}.each { |v| ENV.delete(v) } - end - - def teardown - ENV.send MacOS.default_compiler - end - def test_llvm_failure f = TestLLVMFailure.new cs = CompilerSelector.new(f) @@ -17,13 +9,10 @@ class CompilerTests < Test::Unit::TestCase assert !(f.fails_with? :clang) assert f.fails_with? :llvm assert !(f.fails_with? :gcc) - - cs.select_compiler - assert_equal case MacOS.clang_build_version when 0..210 then :gcc else :clang - end, ENV.compiler + end, cs.compiler end def test_all_compiler_failures @@ -33,10 +22,7 @@ class CompilerTests < Test::Unit::TestCase assert f.fails_with? :clang assert f.fails_with? :llvm assert f.fails_with? :gcc - - cs.select_compiler - - assert_equal MacOS.default_compiler, ENV.compiler + assert_equal MacOS.default_compiler, cs.compiler end def test_no_compiler_failures @@ -49,10 +35,7 @@ class CompilerTests < Test::Unit::TestCase when nil then f.fails_with? :gcc else !(f.fails_with? :gcc) end - - cs.select_compiler - - assert_equal MacOS.default_compiler, ENV.compiler + assert_equal MacOS.default_compiler, cs.compiler end def test_mixed_compiler_failures @@ -62,10 +45,7 @@ class CompilerTests < Test::Unit::TestCase assert f.fails_with? :clang assert !(f.fails_with? :llvm) assert f.fails_with? :gcc - - cs.select_compiler - - assert_equal :llvm, ENV.compiler + assert_equal :llvm, cs.compiler end def test_more_mixed_compiler_failures @@ -75,10 +55,7 @@ class CompilerTests < Test::Unit::TestCase assert !(f.fails_with? :clang) assert f.fails_with? :llvm assert f.fails_with? :gcc - - cs.select_compiler - - assert_equal :clang, ENV.compiler + assert_equal :clang, cs.compiler end def test_even_more_mixed_compiler_failures @@ -91,13 +68,10 @@ class CompilerTests < Test::Unit::TestCase when nil then f.fails_with? :gcc else !(f.fails_with? :gcc) end - - cs.select_compiler - assert_equal case MacOS.gcc_42_build_version when nil then :llvm else :gcc - end, ENV.compiler + end, cs.compiler end def test_block_with_no_build_compiler_failures @@ -107,9 +81,6 @@ class CompilerTests < Test::Unit::TestCase assert f.fails_with? :clang assert !(f.fails_with? :llvm) assert !(f.fails_with? :gcc) - - cs.select_compiler - - assert_not_equal :clang, ENV.compiler + assert_not_equal :clang, cs.compiler end end