From d212b360eca4969109a3bfcf0fd86e45b75554f7 Mon Sep 17 00:00:00 2001 From: Misty De Meo Date: Mon, 27 May 2013 12:54:07 -0500 Subject: [PATCH] superenv: Improve compiler selection This fixes superenv on Xcode 3.2.6, and also fixes C++ software with gcc-4.2 on all Xcodes. --- Library/ENV/4.3/cc | 13 ++++++++----- Library/Homebrew/superenv.rb | 9 +++++++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/Library/ENV/4.3/cc b/Library/ENV/4.3/cc index 3d6241c1fd..b96c0015ea 100755 --- a/Library/ENV/4.3/cc +++ b/Library/ENV/4.3/cc @@ -62,12 +62,15 @@ class Cmd # the work since Makefiles are dumb and include a lot of excess flags. ENV['HOMEBREW_CC'] when 'c++' - if ENV['HOMEBREW_CC'] =~ /llvm-gcc/ - 'g++' - elsif ENV['HOMEBREW_CC'] =~ /gcc-4.2/ - 'g++-4.2' - else + case ENV['HOMEBREW_CC'] + when /clang/ 'clang++' + when /llvm-gcc/ + 'g++' + when /gcc(-4.2)?$/ + 'g++-4.2' + when /gcc-4.0/ + 'g++-4.0' end else @arg0 diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb index b8dfa7f25d..8c3d131df5 100644 --- a/Library/Homebrew/superenv.rb +++ b/Library/Homebrew/superenv.rb @@ -93,7 +93,7 @@ class << ENV "gcc" elsif ENV['HOMEBREW_CC'] case ENV['HOMEBREW_CC'] - when 'clang', 'gcc' then ENV['HOMEBREW_CC'] + when 'clang', 'gcc', 'gcc-4.0' then ENV['HOMEBREW_CC'] when 'llvm', 'llvm-gcc' then 'llvm-gcc' else opoo "Invalid value for HOMEBREW_CC: #{ENV['HOMEBREW_CC']}" @@ -103,7 +103,12 @@ class << ENV raise end rescue - "clang" + case MacOS.default_compiler + when :clang then 'clang' + when :llvm then 'llvm-gcc' + when :gcc then 'gcc' + when :gcc_4_0 then 'gcc-4.0' + end end def determine_path