diff options
| -rw-r--r-- | mesonbuild/options.py | 6 | ||||
| -rw-r--r-- | unittests/optiontests.py | 18 |
2 files changed, 20 insertions, 4 deletions
diff --git a/mesonbuild/options.py b/mesonbuild/options.py index 57b765bef..35ed43e62 100644 --- a/mesonbuild/options.py +++ b/mesonbuild/options.py @@ -909,12 +909,10 @@ class OptionStore: if key.subproject: proj_key = key.evolve(subproject=None) self.add_system_option_internal(proj_key, valobj) - if pval is not None: - self.augments[key] = pval else: self.options[key] = valobj - if pval is not None: - self.set_option(key, pval) + if pval is not None: + self.set_option(key, pval) def add_compiler_option(self, language: str, key: T.Union[OptionKey, str], valobj: AnyOptionType) -> None: key = self.ensure_and_validate_key(key) diff --git a/unittests/optiontests.py b/unittests/optiontests.py index 8f49a804e..7273ecf47 100644 --- a/unittests/optiontests.py +++ b/unittests/optiontests.py @@ -474,3 +474,21 @@ class OptionTests(unittest.TestCase): optstore.set_option(OptionKey(name), True) value = optstore.get_value(name) self.assertEqual(value, '1') + + def test_pending_augment_validation(self): + name = 'b_lto' + subproject = 'mysubproject' + + optstore = OptionStore(False) + prefix = UserStringOption('prefix', 'This is needed by OptionStore', '/usr') + optstore.add_system_option('prefix', prefix) + + optstore.initialize_from_top_level_project_call({}, {}, {}) + optstore.initialize_from_subproject_call(subproject, {}, {OptionKey(name): 'true'}, {}, {}) + + bo = UserBooleanOption(name, 'LTO', False) + key = OptionKey(name, subproject=subproject) + optstore.add_system_option(key, bo) + stored_value = optstore.get_value_for(key) + self.assertIsInstance(stored_value, bool) + self.assertTrue(stored_value) |
