summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/options.py6
-rw-r--r--unittests/optiontests.py18
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)