diff options
author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2019-09-26 12:57:37 +0400 |
---|---|---|
committer | Xavier Claessens <xclaesse@gmail.com> | 2019-09-29 08:42:53 -0400 |
commit | 18897b6afd35d7369658c9ecf562e2425256d6a9 (patch) | |
tree | f3a25d67389b575a2a10a47a87cd43e9d908b25c /mesonbuild/interpreter.py | |
parent | 6c72119cfdd4b33c48ea5e248581feda65491d36 (diff) | |
download | meson-18897b6afd35d7369658c9ecf562e2425256d6a9.zip meson-18897b6afd35d7369658c9ecf562e2425256d6a9.tar.gz meson-18897b6afd35d7369658c9ecf562e2425256d6a9.tar.bz2 |
ConfigurationDataHolder: pass initial_values to ctor
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index a5274c6..96c56ca 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -267,7 +267,7 @@ class EnvironmentVariablesHolder(MutableInterpreterObject, ObjectHolder): class ConfigurationDataHolder(MutableInterpreterObject, ObjectHolder): - def __init__(self, pv): + def __init__(self, pv, initial_values=None): MutableInterpreterObject.__init__(self) self.used = False # These objects become immutable after use in configure_file. ObjectHolder.__init__(self, build.ConfigurationData(), pv) @@ -279,6 +279,11 @@ class ConfigurationDataHolder(MutableInterpreterObject, ObjectHolder): 'get_unquoted': self.get_unquoted_method, 'merge_from': self.merge_from_method, }) + if isinstance(initial_values, dict): + for k, v in initial_values.items(): + self.set_method([k, v], {}) + elif initial_values: + raise AssertionError('Unsupported ConfigurationDataHolder initial_values') def is_used(self): return self.used @@ -2616,10 +2621,7 @@ external dependencies (including libraries) must go to "dependencies".''') raise InterpreterException('configuration_data first argument must be a dictionary') else: initial_values = {} - cdata = ConfigurationDataHolder(self.subproject) - for k, v in initial_values.items(): - cdata.set_method([k, v], {}) - return cdata + return ConfigurationDataHolder(self.subproject, initial_values) def set_backend(self): # The backend is already set when parsing subprojects @@ -3670,10 +3672,7 @@ This will become a hard error in the future.''' % kwargs['input'], location=self conf = kwargs['configuration'] if isinstance(conf, dict): FeatureNew('configure_file.configuration dictionary', '0.49.0').use(self.subproject) - cdata = ConfigurationDataHolder(self.subproject) - for k, v in conf.items(): - cdata.set_method([k, v], {}) - conf = cdata + conf = ConfigurationDataHolder(self.subproject, conf) elif not isinstance(conf, ConfigurationDataHolder): raise InterpreterException('Argument "configuration" is not of type configuration_data') mlog.log('Configuring', mlog.bold(output), 'using configuration') |