aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authorCharlie Sharpsteen2012-11-13 17:22:36 -0800
committerCharlie Sharpsteen2012-11-13 20:54:33 -0800
commit14cb8c8fce63dba41384ad2f8b8849ef206d8699 (patch)
tree361be93b57912f68034380f4a939b8bb787ca513 /Library
parent0d5a42ad89f8da65736a4ba9561cb4d6e91e1feb (diff)
downloadbrew-14cb8c8fce63dba41384ad2f8b8849ef206d8699.tar.bz2
ENV.rb: Configure Objective-C++ compiler
Ensures the `OBJCXX` environment variable is correctly set. Also adds `OBJC` and `OBJCXX` to `ENV.remove_cc_etc`.
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/extend/ENV.rb33
1 files changed, 14 insertions, 19 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb
index 3ce1aba57..22b057dba 100644
--- a/Library/Homebrew/extend/ENV.rb
+++ b/Library/Homebrew/extend/ENV.rb
@@ -47,9 +47,8 @@ module HomebrewEnvExtension
unless self['CC']
@compiler = MacOS.default_compiler
self.send @compiler
- self['CC'] = MacOS.locate("cc")
- self['CXX'] = MacOS.locate("c++")
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = MacOS.locate("cc")
+ self['CXX'] = self['OBJCXX'] = MacOS.locate("c++")
end
# Add lib and include etc. from the current macosxsdk to compiler flags:
@@ -116,9 +115,8 @@ module HomebrewEnvExtension
def gcc_4_0_1
# we don't use locate because gcc 4.0 has not been provided since Xcode 4
- self['CC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
- self['CXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
+ self['CXX'] = self['OBJCXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
replace_in_cflags '-O4', '-O3'
set_cpu_cflags 'nocona -mssse3', :core => 'prescott', :bottle => 'generic'
@compiler = :gcc
@@ -132,6 +130,7 @@ module HomebrewEnvExtension
self['CXX'] =~ %r{/usr/bin/xcrun (.*)}
self['CXX'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
self['OBJC'] = self['CC']
+ self['OBJCXX'] = self['CXX']
end
def gcc
@@ -139,14 +138,12 @@ module HomebrewEnvExtension
# However they still provide a gcc symlink to llvm
# But we don't want LLVM of course.
- self['CC'] = MacOS.locate "gcc-4.2"
- self['CXX'] = MacOS.locate "g++-4.2"
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = MacOS.locate("gcc-4.2")
+ self['CXX'] = self['OBJCXX'] = MacOS.locate("g++-4.2")
unless self['CC']
- self['CC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2"
- self['CXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2"
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2"
+ self['CXX'] = self['OBJCXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2"
raise "GCC could not be found" unless File.exist? self['CC']
end
@@ -161,17 +158,15 @@ module HomebrewEnvExtension
alias_method :gcc_4_2, :gcc
def llvm
- self['CC'] = MacOS.locate "llvm-gcc"
- self['CXX'] = MacOS.locate "llvm-g++"
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = MacOS.locate("llvm-gcc")
+ self['CXX'] = self['OBJCXX'] = MacOS.locate("llvm-g++")
set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott'
@compiler = :llvm
end
def clang
- self['CC'] = MacOS.locate "clang"
- self['CXX'] = MacOS.locate "clang++"
- self['OBJC'] = self['CC']
+ self['CC'] = self['OBJC'] = MacOS.locate("clang")
+ self['CXX'] = self['OBJCXX'] = MacOS.locate("clang++")
replace_in_cflags(/-Xarch_i386 (-march=\S*)/, '\1')
# Clang mistakenly enables AES-NI on plain Nehalem
set_cpu_cflags 'native', :nehalem => 'native -Xclang -target-feature -Xclang -aes'
@@ -377,7 +372,7 @@ end
class << ENV
def remove_cc_etc
- keys = %w{CC CXX LD CPP CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS LDFLAGS CPPFLAGS}
+ keys = %w{CC CXX OBJC OBJCXX LD CPP CFLAGS CXXFLAGS OBJCFLAGS OBJCXXFLAGS LDFLAGS CPPFLAGS}
removed = Hash[*keys.map{ |key| [key, self[key]] }.flatten]
keys.each do |key|
delete(key)