diff options
Diffstat (limited to 'mesonbuild')
-rw-r--r-- | mesonbuild/interpreter.py | 10 | ||||
-rw-r--r-- | mesonbuild/mesonlib.py | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 3acb14f..121fdb7 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -276,8 +276,9 @@ class ConfigurationDataHolder(MutableInterpreterObject, ObjectHolder): def validate_args(self, args, kwargs): if len(args) == 1 and isinstance(args[0], list) and len(args[0]) == 2: - mlog.deprecation('''Passing a list as the single argument to configuration_data.set is deprecated. -This will become a hard error in the future''') + mlog.deprecation('Passing a list as the single argument to ' + 'configuration_data.set is deprecated. This will ' + 'become a hard error in the future.') args = args[0] if len(args) != 2: @@ -286,6 +287,11 @@ This will become a hard error in the future''') raise InterpreterException("Can not set values on configuration object that has been used.") name = args[0] val = args[1] + if not isinstance(val, (int, str)): + msg = 'Setting a configuration data value to {!r} is invalid, ' \ + 'and will fail at configure_file(). If you are using it ' \ + 'just to store some values, please use a dict instead.' + mlog.deprecation(msg.format(val)) desc = kwargs.get('description', None) if not isinstance(name, str): raise InterpreterException("First argument to set must be a string.") diff --git a/mesonbuild/mesonlib.py b/mesonbuild/mesonlib.py index 6b1fb76..f3682ce 100644 --- a/mesonbuild/mesonlib.py +++ b/mesonbuild/mesonlib.py @@ -603,7 +603,9 @@ def do_replacement(regex, line, format, confdata): elif isinstance(var, int): var = str(var) else: - raise RuntimeError('Tried to replace a variable with something other than a string or int.') + msg = 'Tried to replace variable {!r} value with ' \ + 'something other than a string or int: {!r}' + raise MesonException(msg.format(varname, var)) else: missing_variables.add(varname) var = '' |