aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter.py
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2017-07-02 16:33:49 -0400
committerGitHub <noreply@github.com>2017-07-02 16:33:49 -0400
commit917e12e4e722e0c946dc4750d4d100e3b9a41bf1 (patch)
tree90f8486bc7ff8c0f2916e4b2f11e164b9f072de2 /mesonbuild/interpreter.py
parent304841d1c7fb2e6dfbe8134e16acbeaeb338914b (diff)
parentf5b95dfa06389a1fae21d998ef65af5c4d6958b6 (diff)
downloadmeson-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.py10
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):