diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index ce8de00d0824975ba7b39bd95f90cddf1ebbf4f8..d9b5872e2b963ed20b1f34acb20ae62987ea8b9b 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -61,9 +61,8 @@ module Superenv def setup_build_environment(formula=nil) reset - self.cc = 'cc' - self.cxx = 'c++' - self['HOMEBREW_CC'] = determine_cc + self.cc = self['HOMEBREW_CC'] = determine_cc + self.cxx = self['HOMEBREW_CXX'] = determine_cxx validate_cc!(formula) unless formula.nil? self['DEVELOPER_DIR'] = determine_developer_dir self['MAKEFLAGS'] ||= "-j#{determine_make_jobs}" @@ -152,6 +151,10 @@ module Superenv COMPILER_SYMBOL_MAP.invert.fetch(cc, cc) end + def determine_cxx + determine_cc.to_s.gsub('gcc', 'g++').gsub('clang', 'clang++') + end + def determine_path paths = [Superenv.bin] if MacOS::Xcode.without_clt? @@ -292,25 +295,18 @@ module Superenv delete('MAKEFLAGS') end alias_method :j1, :deparallelize - def gcc - self['HOMEBREW_CC'] = "gcc-4.2" - @compiler = :gcc - end - def gcc_4_0 - self['HOMEBREW_CC'] = "gcc-4.0" - @compiler = :gcc_4_0 - end - def llvm - self['HOMEBREW_CC'] = "llvm-gcc" - @compiler = :llvm - end - def clang - self['HOMEBREW_CC'] = "clang" - @compiler = :clang + COMPILER_SYMBOL_MAP.values.each do |compiler| + define_method compiler do + @compiler = compiler + self.cc = self['HOMEBREW_CC'] = determine_cc + self.cxx = self['HOMEBREW_CXX'] = determine_cxx + end end GNU_GCC_VERSIONS.each do |n| define_method(:"gcc-4.#{n}") do - @compiler = self['HOMEBREW_CC'] = "gcc-4.#{n}" + @compiler = :"gcc-4.#{n}" + self.cc = self['HOMEBREW_CC'] = determine_cc + self.cxx = self['HOMEBREW_CXX'] = determine_cxx end end def make_jobs