diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2022-12-19 13:31:40 +0100 |
---|---|---|
committer | Dylan Baker <dylan@pnwbakers.com> | 2023-01-04 09:44:32 -0800 |
commit | 8d2940024bd16919bf7772334dd0048604abecfb (patch) | |
tree | ea1e632bf53aa68b7328cf4dcb120a1e51969553 /mesonbuild/build.py | |
parent | 5ef824b2f3649bde1239d4b23c2bd20ecea795cf (diff) | |
download | meson-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.py | 11 |
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}.') |