summaryrefslogtreecommitdiffstats
path: root/src/engine
diff options
context:
space:
mode:
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):