summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Environment.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-10-07 23:50:06 (GMT)
committerSteven Knight <knight@baldmt.com>2002-10-07 23:50:06 (GMT)
commitbbdf3e20a90dabfe9944bfc58e6756cf799df7e9 (patch)
tree6bfa44d8dd2407ce2973a3b688860629accc0e50 /src/engine/SCons/Environment.py
parentbdf39335f8eff310c749fa5a9d08697aa81a003b (diff)
downloadSCons-bbdf3e20a90dabfe9944bfc58e6756cf799df7e9.zip
SCons-bbdf3e20a90dabfe9944bfc58e6756cf799df7e9.tar.gz
SCons-bbdf3e20a90dabfe9944bfc58e6756cf799df7e9.tar.bz2
Get rid of the magicness of the magic _ variables. (Anthony Roach)
Diffstat (limited to 'src/engine/SCons/Environment.py')
-rw-r--r--src/engine/SCons/Environment.py130
1 files changed, 0 insertions, 130 deletions
diff --git a/src/engine/SCons/Environment.py b/src/engine/SCons/Environment.py
index 1a1dd49..c0b3255 100644
--- a/src/engine/SCons/Environment.py
+++ b/src/engine/SCons/Environment.py
@@ -159,38 +159,6 @@ class Environment:
if options:
options.Update(self)
- #
- # self.autogen_vars is a tuple of tuples. Each inner tuple
- # has four elements, each strings referring to an environment
- # variable, and describing how to autogenerate a particular
- # variable. The elements are:
- #
- # 0 - The variable to generate
- # 1 - The "source" variable, usually a list
- # 2 - The "prefix" variable
- # 3 - The "suffix" variable
- #
- # The autogenerated variable is a list, consisting of every
- # element of the source list, or a single element if the source
- # is a string, with the prefix and suffix concatenated.
- #
- self.autogen_vars = ( VarInterpolator('_LIBFLAGS',
- 'LIBS',
- 'LIBLINKPREFIX',
- 'LIBLINKSUFFIX'),
- DirVarInterp('_LIBDIRFLAGS',
- 'LIBPATH',
- 'LIBDIRPREFIX',
- 'LIBDIRSUFFIX' ),
- DirVarInterp('_CPPINCFLAGS',
- 'CPPPATH',
- 'INCPREFIX',
- 'INCSUFFIX'),
- DirVarInterp('_F77INCFLAGS',
- 'F77PATH',
- 'INCPREFIX',
- 'INCSUFFIX') )
-
def __cmp__(self, other):
return cmp(self._dict, other._dict)
@@ -454,15 +422,6 @@ class Environment:
return scanner
return None
- def autogenerate(self, fs = SCons.Node.FS.default_fs, dir = None):
- """Return a dictionary of autogenerated "interpolated"
- construction variables.
- """
- dict = {}
- for interp in self.autogen_vars:
- interp.instance(dir, fs).generate(dict, self._dict)
- return dict
-
def get_builder(self, name):
"""Fetch the builder with the specified name from the environment.
"""
@@ -518,92 +477,3 @@ class Environment:
"Emulates the items() method of dictionaries."""
return self._dict.items()
-class VarInterpolator:
- def __init__(self, dest, src, prefix, suffix):
- self.dest = dest
- if not SCons.Util.is_List(src):
- src = [ src ]
- self.src = src
- self.prefix = prefix
- self.suffix = suffix
-
- def prepareSrc(self, dict):
- src = []
- for s in self.src:
- if dict.has_key(s):
- cv = dict[s]
- if SCons.Util.is_String(cv):
- src.extend(string.split(cv))
- elif SCons.Util.is_List(cv):
- src.extend(cv)
- else:
- src.append(cv)
-
- def prepare(x, dict=dict):
- if isinstance(x, SCons.Node.Node):
- return x
- else:
- return SCons.Util.scons_subst(x, {}, dict)
-
- return map(prepare, src)
-
- def generate(self, ddict, sdict):
- src = filter(lambda x: not x is None, self.prepareSrc(sdict))
-
- if not src:
- ddict[self.dest] = ''
- return
-
- prefix = sdict.get(self.prefix, '')
- suffix = sdict.get(self.suffix, '')
-
- def autogenFunc(x, suff=suffix, pref=prefix):
- """Generate the interpolated variable. If the prefix
- ends in a space, or the suffix begins in a space,
- leave it as a separate element of the list."""
- ret = [ str(x) ]
- if pref and pref[-1] == ' ':
- ret.insert(0, pref[:-1])
- else:
- ret[0] = pref + ret[0]
- if suff and suff[0] == ' ':
- ret.append(suff[1:])
- else:
- ret[-1] = ret[-1] + suff
- return ret
-
- ddict[self.dest] = reduce(lambda x, y: x+y,
- map(autogenFunc, src))
-
- def instance(self, dir, fs):
- return self
-
-class DirVarInterp(VarInterpolator):
- def __init__(self, dest, src, prefix, suffix):
- VarInterpolator.__init__(self, dest, src, prefix, suffix)
- self.fs = None
- self.Dir = None
- self.dictInstCache = {}
-
- def prepareSrc(self, dict):
- src = VarInterpolator.prepareSrc(self, dict)
- def path_dirs(rep, path, fs=self.fs, dir=self.dir):
- if rep:
- path = os.path.join(rep, path)
- return fs.Dir(path, directory = dir)
- return self.fs.Rsearchall(src, path_dirs)
-
- def instance(self, dir, fs):
- try:
- ret = self.dictInstCache[(dir, fs)]
- except KeyError:
- ret = copy.copy(self)
- ret.fs = fs
- ret.dir = dir
- self.dictInstCache[(dir, fs)] = ret
- return ret
-
- def generate(self, ddict, sdict):
- VarInterpolator.generate(self, ddict, sdict)
- if ddict[self.dest]:
- ddict[self.dest] = ['$('] + ddict[self.dest] + ['$)']