From 9699c0764efddbc7f9f398ed0fd1726db28523b3 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 19 Aug 2013 12:32:58 -0500 Subject: Re-enable superenv ENV[] hack --- Library/Homebrew/superenv.rb | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) (limited to 'Library') diff --git a/Library/Homebrew/superenv.rb b/Library/Homebrew/superenv.rb index c8c21e172..58a801ca5 100644 --- a/Library/Homebrew/superenv.rb +++ b/Library/Homebrew/superenv.rb @@ -17,6 +17,30 @@ module Superenv def self.extended(base) base.keg_only_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 def self.bin @@ -279,26 +303,6 @@ module Superenv self['MAKEFLAGS'] =~ /-\w*j(\d)+/ [$1.to_i, 1].max 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 -- cgit v1.2.3