diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-07-02 16:33:49 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-02 16:33:49 -0400 |
commit | 917e12e4e722e0c946dc4750d4d100e3b9a41bf1 (patch) | |
tree | 90f8486bc7ff8c0f2916e4b2f11e164b9f072de2 /mesonbuild/interpreter.py | |
parent | 304841d1c7fb2e6dfbe8134e16acbeaeb338914b (diff) | |
parent | f5b95dfa06389a1fae21d998ef65af5c4d6958b6 (diff) | |
download | meson-917e12e4e722e0c946dc4750d4d100e3b9a41bf1.zip meson-917e12e4e722e0c946dc4750d4d100e3b9a41bf1.tar.gz meson-917e12e4e722e0c946dc4750d4d100e3b9a41bf1.tar.bz2 |
Merge pull request #2017 from mesonbuild/fix2012
Do not pickle interpreter objects by accident
Diffstat (limited to 'mesonbuild/interpreter.py')
-rw-r--r-- | mesonbuild/interpreter.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mesonbuild/interpreter.py b/mesonbuild/interpreter.py index 13c3119..58a145a 100644 --- a/mesonbuild/interpreter.py +++ b/mesonbuild/interpreter.py @@ -1308,6 +1308,7 @@ class Interpreter(InterpreterBase): def __init__(self, build, backend, subproject='', subdir='', subproject_dir='subprojects', default_project_options=[]): super().__init__(build.environment.get_source_dir(), subdir) + self.an_unpicklable_object = mesonlib.an_unpicklable_object self.build = build self.environment = build.environment self.coredata = self.environment.get_coredata() @@ -1521,7 +1522,13 @@ class Interpreter(InterpreterBase): if not isinstance(d, (dependencies.Dependency, dependencies.ExternalLibrary, dependencies.InternalDependency)): raise InterpreterException('Dependencies must be external deps') final_deps.append(d) - dep = dependencies.InternalDependency(version, incs, compile_args, link_args, libs, sources, final_deps) + dep = dependencies.InternalDependency(version, + mesonlib.unholder_array(incs), + compile_args, + link_args, + mesonlib.unholder_array(libs), + mesonlib.unholder_array(sources), + final_deps) return DependencyHolder(dep) @noKwargs @@ -2288,6 +2295,7 @@ class Interpreter(InterpreterBase): for i in cmd_args: if not isinstance(i, (str, mesonlib.File, TargetHolder)): raise InterpreterException('Command line arguments must be strings, files or targets.') + cmd_args = mesonlib.unholder_array(cmd_args) env = self.unpack_env_kwarg(kwargs) should_fail = kwargs.get('should_fail', False) if not isinstance(should_fail, bool): |