diff options
author | Steven Knight <knight@baldmt.com> | 2002-10-13 12:52:05 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2002-10-13 12:52:05 (GMT) |
commit | 82bf497dd03f97f66f0026d9fea51b24af0af67b (patch) | |
tree | 0c054f13f3f8e0b743af71960602909eb9dc1c6a /src/engine | |
parent | 74a291228a3c4e833c49f6f842aa8ae0c0d36d75 (diff) | |
download | SCons-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.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): |