aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/build.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2022-12-19 13:31:40 +0100
committerDylan Baker <dylan@pnwbakers.com>2023-01-04 09:44:32 -0800
commit8d2940024bd16919bf7772334dd0048604abecfb (patch)
treeea1e632bf53aa68b7328cf4dcb120a1e51969553 /mesonbuild/build.py
parent5ef824b2f3649bde1239d4b23c2bd20ecea795cf (diff)
downloadmeson-8d2940024bd16919bf7772334dd0048604abecfb.zip
meson-8d2940024bd16919bf7772334dd0048604abecfb.tar.gz
meson-8d2940024bd16919bf7772334dd0048604abecfb.tar.bz2
allow passing generated objects in the "objects" keyword argument
Generated objects can already be passed in the "objects" keyword argument as long as you go through an extract_objects() indirection. Allow the same even directly, since that is more intuitive than having to add them to "sources". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/build.py')
-rw-r--r--mesonbuild/build.py11
1 files changed, 5 insertions, 6 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py
index db2c309..9d55bf9 100644
--- a/mesonbuild/build.py
+++ b/mesonbuild/build.py
@@ -777,12 +777,11 @@ class BuildTarget(Target):
for s in objects:
if isinstance(s, (str, File, ExtractedObjects)):
self.objects.append(s)
- elif isinstance(s, (GeneratedList, CustomTarget)):
- msg = 'Generated files are not allowed in the \'objects\' kwarg ' + \
- f'for target {self.name!r}.\nIt is meant only for ' + \
- 'pre-built object files that are shipped with the\nsource ' + \
- 'tree. Try adding it in the list of sources.'
- raise InvalidArguments(msg)
+ elif isinstance(s, (CustomTarget, CustomTargetIndex, GeneratedList)):
+ non_objects = [o for o in s.get_outputs() if not is_object(o)]
+ if non_objects:
+ raise InvalidArguments(f'Generated file {non_objects[0]} in the \'objects\' kwarg is not an object.')
+ self.generated.append(s)
else:
raise InvalidArguments(f'Bad object of type {type(s).__name__!r} in target {self.name!r}.')