diff options
| author | Max Howell | 2011-09-06 11:20:09 +0100 |
|---|---|---|
| committer | Max Howell | 2011-09-06 11:22:22 +0100 |
| commit | a50d53d1ad1a55eef8a20f6671d9f50772dcc659 (patch) | |
| tree | 3ad9a1a4980288768811667b3a4d9f1585f302f9 /Library/Homebrew/extend | |
| parent | 102517abc6ac0a5ac487b4bd0f13eb976f360e59 (diff) | |
| download | homebrew-a50d53d1ad1a55eef8a20f6671d9f50772dcc659.tar.bz2 | |
Remember compiler setting when it is changed via eg. ENV.gcc
Thus it will be correct after the setting is changed.
Diffstat (limited to 'Library/Homebrew/extend')
| -rw-r--r-- | Library/Homebrew/extend/ENV.rb | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/Library/Homebrew/extend/ENV.rb b/Library/Homebrew/extend/ENV.rb index 5b9c13125..155daa19b 100644 --- a/Library/Homebrew/extend/ENV.rb +++ b/Library/Homebrew/extend/ENV.rb @@ -28,8 +28,11 @@ module HomebrewEnvExtension end # we must have a working compiler! - ENV['CC'] = '/usr/bin/cc' unless File.exist? ENV['CC'] - ENV['CXX'] = '/usr/bin/c++' unless File.exist? ENV['CXX'] + unless File.exist? ENV['CC'] and File.exist? ENV['CXX'] + ENV['CC'] = '/usr/bin/cc' + ENV['CXX'] = '/usr/bin/c++' + @compiler = MacOS.default_compiler + end # In rare cases this may break your builds, as the tool for some reason wants # to use a specific linker. However doing this in general causes formula to @@ -120,6 +123,7 @@ module HomebrewEnvExtension remove_from_cflags '-O4' remove_from_cflags '-march=core2' remove_from_cflags %r{-msse4(\.\d)?} + @compiler = :gcc end alias_method :gcc_4_0, :gcc_4_0_1 @@ -127,17 +131,20 @@ module HomebrewEnvExtension self['CC'] = "/usr/bin/gcc-4.2" self['CXX'] = "/usr/bin/g++-4.2" remove_from_cflags '-O4' + @compiler = :gcc end alias_method :gcc_4_2, :gcc def llvm self['CC'] = "/usr/bin/llvm-gcc" self['CXX'] = "/usr/bin/llvm-g++" + @compiler = :llvm end def clang self['CC'] = "/usr/bin/clang" self['CXX'] = "/usr/bin/clang++" + @compiler = :clang end def fortran @@ -295,6 +302,7 @@ Please take one of the following actions: remove 'CXXFLAGS', f end + # actually c-compiler, so cc would be a better name def compiler # TODO seems that ENV.clang in a Formula.install should warn when called # if the user has set something that is tested here @@ -302,7 +310,7 @@ Please take one of the following actions: # test for --flags first so that installs can be overridden on a per # install basis. Then test for ENVs in inverse order to flags, this is # sensible, trust me - if ARGV.include? '--use-gcc' + @compiler ||= if ARGV.include? '--use-gcc' :gcc elsif ARGV.include? '--use-llvm' :llvm |
