diff options
Diffstat (limited to 'src/engine')
-rw-r--r-- | src/engine/SCons/Options.py | 17 | ||||
-rw-r--r-- | src/engine/SCons/OptionsTests.py | 2 |
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): |