ENV: Ensure @compiler is set
If @compiler isn't set/checked by ENV.compiler and the ENV.clang/etc. methods, ENV.compiler may return unexpected results after fails_with picks a fallback compiler. See Homebrew/homebrew#22674.
This commit is contained in:
parent
bda0a3102f
commit
497ccdc41c
@ -82,7 +82,7 @@ module SharedEnvExtension
|
|||||||
def fcflags; self['FCFLAGS']; end
|
def fcflags; self['FCFLAGS']; end
|
||||||
|
|
||||||
def compiler
|
def compiler
|
||||||
if (cc = ARGV.cc)
|
@compiler ||= if (cc = ARGV.cc)
|
||||||
COMPILER_SYMBOL_MAP.fetch(cc) do |other|
|
COMPILER_SYMBOL_MAP.fetch(cc) do |other|
|
||||||
if other =~ GNU_GCC_REGEXP then other
|
if other =~ GNU_GCC_REGEXP then other
|
||||||
else
|
else
|
||||||
|
|||||||
@ -263,16 +263,19 @@ module Superenv
|
|||||||
alias_method :j1, :deparallelize
|
alias_method :j1, :deparallelize
|
||||||
def gcc
|
def gcc
|
||||||
self['HOMEBREW_CC'] = "gcc-4.2"
|
self['HOMEBREW_CC'] = "gcc-4.2"
|
||||||
|
@compiler = :gcc
|
||||||
end
|
end
|
||||||
def llvm
|
def llvm
|
||||||
self['HOMEBREW_CC'] = "llvm-gcc"
|
self['HOMEBREW_CC'] = "llvm-gcc"
|
||||||
|
@compiler = :llvm
|
||||||
end
|
end
|
||||||
def clang
|
def clang
|
||||||
self['HOMEBREW_CC'] = "clang"
|
self['HOMEBREW_CC'] = "clang"
|
||||||
|
@compiler = :clang
|
||||||
end
|
end
|
||||||
GNU_GCC_VERSIONS.each do |n|
|
GNU_GCC_VERSIONS.each do |n|
|
||||||
define_method(:"gcc-4.#{n}") do
|
define_method(:"gcc-4.#{n}") do
|
||||||
self['HOMEBREW_CC'] = "gcc-4.#{n}"
|
@compiler = self['HOMEBREW_CC'] = "gcc-4.#{n}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
def make_jobs
|
def make_jobs
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user