From aa79e21ba42f246a365425213f2fdec09160233d Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Fri, 30 Aug 2013 16:44:49 -0500 Subject: [PATCH] ENV: add cc and cxx setters --- Library/Homebrew/extend/ENV/shared.rb | 8 ++++++++ Library/Homebrew/extend/ENV/std.rb | 24 ++++++++++++------------ Library/Homebrew/extend/ENV/super.rb | 18 ++++++++---------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/Library/Homebrew/extend/ENV/shared.rb b/Library/Homebrew/extend/ENV/shared.rb index 3533b7873b..2b42d0d234 100644 --- a/Library/Homebrew/extend/ENV/shared.rb +++ b/Library/Homebrew/extend/ENV/shared.rb @@ -60,6 +60,14 @@ module SharedEnvExtension end if value end + def cc= val + self['CC'] = self['OBJC'] = val + end + + def cxx= val + self['CXX'] = self['OBJCXX'] = val + end + def cc; self['CC']; end def cxx; self['CXX']; end def cflags; self['CFLAGS']; end diff --git a/Library/Homebrew/extend/ENV/std.rb b/Library/Homebrew/extend/ENV/std.rb index ae3fc15e5e..39517be8a4 100644 --- a/Library/Homebrew/extend/ENV/std.rb +++ b/Library/Homebrew/extend/ENV/std.rb @@ -64,8 +64,8 @@ module Stdenv unless self['CC'] @compiler = MacOS.default_compiler self.send @compiler - self['CC'] = self['OBJC'] = MacOS.locate("cc") - self['CXX'] = self['OBJCXX'] = MacOS.locate("c++") + self.cc = MacOS.locate("cc") + self.cxx = MacOS.locate("c++") end # Add lib and include etc. from the current macosxsdk to compiler flags: @@ -131,8 +131,8 @@ module Stdenv def gcc_4_0_1 # we don't use locate because gcc 4.0 has not been provided since Xcode 4 - self['CC'] = self['OBJC'] = "#{MacOS.dev_tools_path}/gcc-4.0" - self['CXX'] = self['OBJCXX'] = "#{MacOS.dev_tools_path}/g++-4.0" + self.cc = "#{MacOS.dev_tools_path}/gcc-4.0" + self.cxx = "#{MacOS.dev_tools_path}/g++-4.0" replace_in_cflags '-O4', '-O3' set_cpu_cflags '-march=nocona -mssse3' @compiler = :gcc @@ -144,12 +144,12 @@ module Stdenv # However they still provide a gcc symlink to llvm # But we don't want LLVM of course. - self['CC'] = self['OBJC'] = MacOS.locate("gcc-4.2") - self['CXX'] = self['OBJCXX'] = MacOS.locate("g++-4.2") + self.cc = MacOS.locate("gcc-4.2") + self.cxx = MacOS.locate("g++-4.2") unless self['CC'] - self['CC'] = self['OBJC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2" - self['CXX'] = self['OBJCXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2" + self.cc = "#{HOMEBREW_PREFIX}/bin/gcc-4.2" + self.cxx = "#{HOMEBREW_PREFIX}/bin/g++-4.2" raise "GCC could not be found" unless File.exist? self['CC'] end @@ -164,15 +164,15 @@ module Stdenv alias_method :gcc_4_2, :gcc def llvm - self['CC'] = self['OBJC'] = MacOS.locate("llvm-gcc") - self['CXX'] = self['OBJCXX'] = MacOS.locate("llvm-g++") + self.cc = MacOS.locate("llvm-gcc") + self.cxx = MacOS.locate("llvm-g++") set_cpu_cflags @compiler = :llvm end def clang - self['CC'] = self['OBJC'] = MacOS.locate("clang") - self['CXX'] = self['OBJCXX'] = MacOS.locate("clang++") + self.cc = MacOS.locate("clang") + self.cxx = MacOS.locate("clang++") replace_in_cflags(/-Xarch_#{Hardware::CPU.arch_32_bit} (-march=\S*)/, '\1') # Clang mistakenly enables AES-NI on plain Nehalem set_cpu_cflags '-march=native', :nehalem => '-march=native -Xclang -target-feature -Xclang -aes' diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index 1dc4626d0e..707b753f01 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -56,10 +56,8 @@ module Superenv def setup_build_environment reset - self['CC'] = 'cc' - self['CXX'] = 'c++' - self['OBJC'] = 'cc' - self['OBJCXX'] = 'c++' + self.cc = 'cc' + self.cxx = 'c++' self['DEVELOPER_DIR'] = determine_developer_dir self['MAKEFLAGS'] ||= "-j#{determine_make_jobs}" self['PATH'] = determine_path @@ -249,16 +247,16 @@ module Superenv end alias_method :j1, :deparallelize def gcc - self['CC'] = self['OBJC'] = self['HOMEBREW_CC'] = "gcc-4.2" - self['CXX'] = self['OBJCXX'] = "g++-4.2" + self.cc = self['HOMEBREW_CC'] = "gcc-4.2" + self.cxx = "g++-4.2" end def llvm - self['CC'] = self['OBJC'] = self['HOMEBREW_CC'] = "llvm-gcc" - self['CXX'] = self['OBJCXX'] = "llvm-g++-4.2" + self.cc = self['HOMEBREW_CC'] = "llvm-gcc" + self.cxx = "llvm-g++-4.2" end def clang - self['CC'] = self['OBJC'] = self['HOMEBREW_CC'] = "clang" - self['CXX'] = self['OBJCXX'] = "clang++" + self.cc = self['HOMEBREW_CC'] = "clang" + self.cxx = "clang++" end def make_jobs self['MAKEFLAGS'] =~ /-\w*j(\d)+/