From 60aaee55d47e5938662a48d85ba659d8f79c7187 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Fri, 13 Apr 2018 10:33:42 -0400 Subject: extract_all_objects(): Recursively extract objects Fixes #3401 --- mesonbuild/build.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'mesonbuild/build.py') diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 083cd71..538254c 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -213,10 +213,11 @@ class ExtractedObjects: ''' Holds a list of sources for which the objects must be extracted ''' - def __init__(self, target, srclist, genlist): + def __init__(self, target, srclist=[], genlist=[], objlist=[]): self.target = target self.srclist = srclist self.genlist = genlist + self.objlist = objlist if self.target.is_unity: self.check_unity_compatible() @@ -644,13 +645,10 @@ class BuildTarget(Target): if src not in self.sources: raise MesonException('Tried to extract unknown source %s.' % src) obj_src.append(src) - return ExtractedObjects(self, obj_src, []) + return ExtractedObjects(self, obj_src) def extract_all_objects(self): - # FIXME: We should add support for transitive extract_objects() - if self.objects: - raise MesonException('Cannot extract objects from a target that itself has extracted objects') - return ExtractedObjects(self, self.sources, self.generated) + return ExtractedObjects(self, self.sources, self.generated, self.objects) def get_all_link_deps(self): return self.get_transitive_link_deps() -- cgit v1.1