aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2013-09-28 19:50:15 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2013-09-28 19:50:15 +0300
commitbe2da48daa6b18fe618b2a7724944f6362b3ce95 (patch)
tree498371833d250c7b4520f03f8abbcd6ccfba7bec
parent31b1c26fbdc707040e6e6dc4cad26dd76ca64038 (diff)
downloadmeson-be2da48daa6b18fe618b2a7724944f6362b3ce95.zip
meson-be2da48daa6b18fe618b2a7724944f6362b3ce95.tar.gz
meson-be2da48daa6b18fe618b2a7724944f6362b3ce95.tar.bz2
Strip holders from ext deps.
-rw-r--r--build.py19
-rw-r--r--dependencies.py2
2 files changed, 19 insertions, 2 deletions
diff --git a/build.py b/build.py
index 13ba257..67d1303 100644
--- a/build.py
+++ b/build.py
@@ -126,8 +126,25 @@ class BuildTarget():
def get_original_kwargs(self):
return self.kwargs
- def process_kwargs(self, kwargs):
+ def copy_kwargs(self, kwargs):
self.kwargs = copy.copy(kwargs)
+ # This sucks quite badly. Arguments
+ # are holders but they can't be pickled
+ # so unpack those known.
+ if 'deps' in self.kwargs:
+ d = self.kwargs['deps']
+ if not isinstance(d, list):
+ d = [d]
+ newd = []
+ for i in d:
+ if hasattr(i, 'el'):
+ newd.append(i.el)
+ else:
+ newd.append(i)
+ self.kwargs['deps'] = newd
+
+ def process_kwargs(self, kwargs):
+ self.copy_kwargs(kwargs)
kwargs.get('modules', [])
self.need_install = kwargs.get('install', self.need_install)
llist = kwargs.get('link_with', [])
diff --git a/dependencies.py b/dependencies.py
index b3186d5..bd24c6c 100644
--- a/dependencies.py
+++ b/dependencies.py
@@ -149,7 +149,7 @@ class ExternalProgram():
class ExternalLibrary(Dependency):
def __init__(self, name, fullpath=None):
- Dependency.__init__(self)
+ super().__init__(self)
self.name = name
self.fullpath = fullpath