summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-10-13 12:52:05 (GMT)
committerSteven Knight <knight@baldmt.com>2002-10-13 12:52:05 (GMT)
commit82bf497dd03f97f66f0026d9fea51b24af0af67b (patch)
tree0c054f13f3f8e0b743af71960602909eb9dc1c6a /src/engine
parent74a291228a3c4e833c49f6f842aa8ae0c0d36d75 (diff)
downloadSCons-82bf497dd03f97f66f0026d9fea51b24af0af67b.zip
SCons-82bf497dd03f97f66f0026d9fea51b24af0af67b.tar.gz
SCons-82bf497dd03f97f66f0026d9fea51b24af0af67b.tar.bz2
Make undeclared options be ignored. (Anthony Roach)
Diffstat (limited to 'src/engine')
-rw-r--r--src/engine/SCons/Options.py17
-rw-r--r--src/engine/SCons/OptionsTests.py2
2 files changed, 15 insertions, 4 deletions
diff --git a/src/engine/SCons/Options.py b/src/engine/SCons/Options.py
index becee14..7e70118 100644
--- a/src/engine/SCons/Options.py
+++ b/src/engine/SCons/Options.py
@@ -93,8 +93,13 @@ class Options:
values.update(args)
# put the variables in the environment:
- for key in values.keys():
- env[key] = values[key]
+ # (don't copy over variables that are not declared
+ # as options)
+ for option in self.options:
+ try:
+ env[option.key] = values[option.key]
+ except KeyError:
+ pass
# Call the convert functions:
for option in self.options:
@@ -103,7 +108,7 @@ class Options:
try:
env[option.key] = option.converter(value)
except ValueError, x:
- raise SCons.Errors.UserError, 'Error converting option: %s\n%s'%(options.key, x)
+ raise SCons.Errors.UserError, 'Error converting option: %s\n%s'%(option.key, x)
# Finally validate the values:
@@ -122,7 +127,11 @@ class Options:
help_text = ""
for option in self.options:
- help_text = help_text + '\n%s: %s\n default: %s\n actual: %s\n'%(option.key, option.help, option.default, env.subst('${%s}'%option.key))
+ help_text = help_text + '\n%s: %s\n default: %s\n'%(option.key, option.help, option.default)
+ if env.has_key(option.key):
+ help_text = help_text + ' actual: %s\n'%env.subst('${%s}'%option.key)
+ else:
+ help_text = help_text + ' actual: None\n'
return help_text
diff --git a/src/engine/SCons/OptionsTests.py b/src/engine/SCons/OptionsTests.py
index ec9e42f..730c87d 100644
--- a/src/engine/SCons/OptionsTests.py
+++ b/src/engine/SCons/OptionsTests.py
@@ -38,6 +38,8 @@ class Environment:
self.dict[key] = value
def __getitem__(self, key):
return self.dict[key]
+ def has_key(self, key):
+ return self.dict.has_key(key)
def check(key,value):