aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r--mesonbuild/interpreter.py24
1 files changed, 14 insertions, 10 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py
index aa032e5..b5da91f 100644
--- a/mesonbuild/interpreter.py
+++ b/mesonbuild/interpreter.py
@@ -228,40 +228,44 @@ class ConfigurationDataHolder(InterpreterObject):
def mark_used(self):
self.used = True
- def validate_args(self, args):
+ def validate_args(self, args, kwargs):
if len(args) != 2:
raise InterpreterException("Configuration set requires 2 arguments.")
if self.used:
raise InterpreterException("Can not set values on configuration object that has been used.")
name = args[0]
val = args[1]
+ desc = kwargs.get('description', None)
if not isinstance(name, str):
raise InterpreterException("First argument to set must be a string.")
- return (name, val)
+ if desc is not None and not isinstance(desc, str):
+ raise InterpreterException('Description must be a string.')
+
+ return (name, val, desc)
def set_method(self, args, kwargs):
- (name, val) = self.validate_args(args)
- self.held_object.values[name] = val
+ (name, val, desc) = self.validate_args(args, kwargs)
+ self.held_object.values[name] = (val, desc)
def set_quoted_method(self, args, kwargs):
- (name, val) = self.validate_args(args)
+ (name, val, desc) = self.validate_args(args, kwargs)
if not isinstance(val, str):
raise InterpreterException("Second argument to set_quoted must be a string.")
escaped_val = '\\"'.join(val.split('"'))
- self.held_object.values[name] = '"' + escaped_val + '"'
+ self.held_object.values[name] = ('"' + escaped_val + '"', desc)
def set10_method(self, args, kwargs):
- (name, val) = self.validate_args(args)
+ (name, val, desc) = self.validate_args(args, kwargs)
if val:
- self.held_object.values[name] = 1
+ self.held_object.values[name] = (1, desc)
else:
- self.held_object.values[name] = 0
+ self.held_object.values[name] = (0, desc)
def has_method(self, args, kwargs):
return args[0] in self.held_object.values
def get(self, name):
- return self.held_object.values[name]
+ return self.held_object.values[name] # (val, desc)
def keys(self):
return self.held_object.values.keys()