Re-enable superenv ENV[] hack

This commit is contained in:
Jack Nagel 2013-08-19 12:32:58 -05:00
parent ce31c16a14
commit 9699c0764e

View File

@ -17,6 +17,30 @@ module Superenv
def self.extended(base) def self.extended(base)
base.keg_only_deps = [] base.keg_only_deps = []
base.deps = [] base.deps = []
# Many formula assume that CFLAGS etc. will not be nil. This should be
# a safe hack to prevent that exception cropping up. Main consequence of
# this is that self['CFLAGS'] is never nil even when it is which can break
# if checks, but we don't do such a check in our code. Redefinition must be
# done on the singleton class, because in MRI all ENV methods are defined
# on its singleton class, precluding the use of extend.
class << base
def [] key
if has_key? key
fetch(key)
elsif %w{CPPFLAGS CFLAGS LDFLAGS}.include? key
class << (a = "")
attr_accessor :key
def + value
ENV[key] = value
end
alias_method '<<', '+'
end
a.key = key
a
end
end
end
end end
def self.bin def self.bin
@ -279,26 +303,6 @@ module Superenv
self['MAKEFLAGS'] =~ /-\w*j(\d)+/ self['MAKEFLAGS'] =~ /-\w*j(\d)+/
[$1.to_i, 1].max [$1.to_i, 1].max
end end
# Many formula assume that CFLAGS etc. will not be nil.
# This should be a safe hack to prevent that exception cropping up.
# Main consqeuence of this is that self['CFLAGS'] is never nil even when it
# is which can break if checks, but we don't do such a check in our code.
def [] key
if has_key? key
fetch(key)
elsif %w{CPPFLAGS CFLAGS LDFLAGS}.include? key
class << (a = "")
attr_accessor :key
def + value
ENV[key] = value
end
alias_method '<<', '+'
end
a.key = key
a
end
end
end end