diff options
| -rw-r--r-- | mesonbuild/build.py | 6 | ||||
| -rw-r--r-- | mesonbuild/interpreter/type_checking.py | 5 |
2 files changed, 7 insertions, 4 deletions
diff --git a/mesonbuild/build.py b/mesonbuild/build.py index 9c27b2361..12e7cb5ef 100644 --- a/mesonbuild/build.py +++ b/mesonbuild/build.py @@ -854,9 +854,12 @@ class BuildTarget(Target): def process_objectlist(self, objects): assert isinstance(objects, list) + deprecated_non_objects = [] for s in objects: if isinstance(s, (str, File, ExtractedObjects)): self.objects.append(s) + if not isinstance(s, ExtractedObjects) and not is_object(s): + deprecated_non_objects.append(s) elif isinstance(s, (CustomTarget, CustomTargetIndex, GeneratedList)): non_objects = [o for o in s.get_outputs() if not is_object(o)] if non_objects: @@ -864,6 +867,9 @@ class BuildTarget(Target): self.generated.append(s) else: raise InvalidArguments(f'Bad object of type {type(s).__name__!r} in target {self.name!r}.') + if deprecated_non_objects: + FeatureDeprecated.single_use(f'Source file {deprecated_non_objects[0]} in the \'objects\' kwarg is not an object.', + '1.3.0', self.subproject) def process_sourcelist(self, sources: T.List['SourceOutputs']) -> None: """Split sources into generated and static sources. diff --git a/mesonbuild/interpreter/type_checking.py b/mesonbuild/interpreter/type_checking.py index 06ded7298..2fa62524b 100644 --- a/mesonbuild/interpreter/type_checking.py +++ b/mesonbuild/interpreter/type_checking.py @@ -554,11 +554,8 @@ def _objects_validator(vals: T.List[ObjectTypes]) -> T.Optional[str]: non_objects: T.List[str] = [] for val in vals: - if isinstance(val, ExtractedObjects): + if isinstance(val, (str, File, ExtractedObjects)): continue - elif isinstance(val, (str, File)): - if not compilers.is_object(val): - non_objects.append(str(val)) else: non_objects.extend(o for o in val.get_outputs() if not compilers.is_object(o)) |
