aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2018-01-05 15:53:13 -0500
committerXavier Claessens <xavier.claessens@collabora.com>2018-04-03 15:20:19 -0400
commit809f01833336be63eb07441e120de2e4f8c4b3c4 (patch)
tree12c6d63326b4a6558f342b7a4988835c80c03605 /mesonbuild/build.py
parent5eef325ab61820ca0c3fa5673afc917dde2aa1ef (diff)
downloadmeson-809f01833336be63eb07441e120de2e4f8c4b3c4.zip
meson-809f01833336be63eb07441e120de2e4f8c4b3c4.tar.gz
meson-809f01833336be63eb07441e120de2e4f8c4b3c4.tar.bz2
extract_all_objects: Also extract generated sources
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index befa2bb..08e0c9d 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -211,9 +211,10 @@ class ExtractedObjects:
'''
Holds a list of sources for which the objects must be extracted
'''
- def __init__(self, target, srclist, is_unity):
+ def __init__(self, target, srclist, genlist, is_unity):
self.target = target
self.srclist = srclist
+ self.genlist = genlist
if is_unity:
self.check_unity_compatible()
@@ -625,13 +626,17 @@ class BuildTarget(Target):
if not isinstance(src, str):
raise MesonException('Object extraction arguments must be strings.')
src = File(False, self.subdir, src)
+ # FIXME: It could be a generated source
if src not in self.sources:
raise MesonException('Tried to extract unknown source %s.' % src)
obj_src.append(src)
- return ExtractedObjects(self, obj_src, self.is_unity)
+ return ExtractedObjects(self, obj_src, [], self.is_unity)
def extract_all_objects(self):
- return ExtractedObjects(self, self.sources, self.is_unity)
+ # 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, self.is_unity)
def get_all_link_deps(self):
return self.get_transitive_link_deps()