ENV: reset LD when switching compilers
Signed-off-by: Jack Nagel <jacknagel@gmail.com>
This commit is contained in:
parent
01c14f8775
commit
5dc15272d9
@ -87,7 +87,8 @@ module HomebrewEnvExtension
|
|||||||
|
|
||||||
def gcc_4_0_1
|
def gcc_4_0_1
|
||||||
# we don't use xcrun because gcc 4.0 has not been provided since Xcode 4
|
# we don't use xcrun because gcc 4.0 has not been provided since Xcode 4
|
||||||
self['CC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
|
self['CC'] = "#{MacOS.dev_tools_path}/gcc-4.0"
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['CXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
|
self['CXX'] = "#{MacOS.dev_tools_path}/g++-4.0"
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
replace_in_cflags '-O4', '-O3'
|
replace_in_cflags '-O4', '-O3'
|
||||||
@ -129,6 +130,7 @@ module HomebrewEnvExtension
|
|||||||
self['CC'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
|
self['CC'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
|
||||||
self['CXX'] =~ %r{/usr/bin/xcrun (.*)}
|
self['CXX'] =~ %r{/usr/bin/xcrun (.*)}
|
||||||
self['CXX'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
|
self['CXX'] = `/usr/bin/xcrun -find #{$1}`.chomp if $1
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -138,11 +140,13 @@ module HomebrewEnvExtension
|
|||||||
# But we don't want LLVM of course.
|
# But we don't want LLVM of course.
|
||||||
|
|
||||||
self['CC'] = xcrun "gcc-4.2"
|
self['CC'] = xcrun "gcc-4.2"
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['CXX'] = xcrun "g++-4.2"
|
self['CXX'] = xcrun "g++-4.2"
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
|
|
||||||
unless self['CC']
|
unless self['CC']
|
||||||
self['CC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2"
|
self['CC'] = "#{HOMEBREW_PREFIX}/bin/gcc-4.2"
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['CXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2"
|
self['CXX'] = "#{HOMEBREW_PREFIX}/bin/g++-4.2"
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
raise "GCC could not be found" if not File.exist? self['CC']
|
raise "GCC could not be found" if not File.exist? self['CC']
|
||||||
@ -159,7 +163,8 @@ module HomebrewEnvExtension
|
|||||||
alias_method :gcc_4_2, :gcc
|
alias_method :gcc_4_2, :gcc
|
||||||
|
|
||||||
def llvm
|
def llvm
|
||||||
self['CC'] = xcrun "llvm-gcc"
|
self['CC'] = xcrun "llvm-gcc"
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['CXX'] = xcrun "llvm-g++"
|
self['CXX'] = xcrun "llvm-g++"
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott'
|
set_cpu_cflags 'core2 -msse4', :penryn => 'core2 -msse4.1', :core2 => 'core2', :core => 'prescott'
|
||||||
@ -167,7 +172,8 @@ module HomebrewEnvExtension
|
|||||||
end
|
end
|
||||||
|
|
||||||
def clang
|
def clang
|
||||||
self['CC'] = xcrun "clang"
|
self['CC'] = xcrun "clang"
|
||||||
|
self['LD'] = self['CC']
|
||||||
self['CXX'] = xcrun "clang++"
|
self['CXX'] = xcrun "clang++"
|
||||||
self['OBJC'] = self['CC']
|
self['OBJC'] = self['CC']
|
||||||
replace_in_cflags(/-Xarch_i386 (-march=\S*)/, '\1')
|
replace_in_cflags(/-Xarch_i386 (-march=\S*)/, '\1')
|
||||||
|
|||||||
@ -25,4 +25,11 @@ class EnvironmentTests < Test::Unit::TestCase
|
|||||||
assert !ENV.cc.empty?
|
assert !ENV.cc.empty?
|
||||||
assert !ENV.cxx.empty?
|
assert !ENV.cxx.empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_switching_compilers
|
||||||
|
ENV.llvm
|
||||||
|
ENV.clang
|
||||||
|
assert_equal ENV['LD'], ENV['CC']
|
||||||
|
assert_equal ENV['OBJC'], ENV['CC']
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user