summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mesonbuild/build.py6
-rw-r--r--mesonbuild/interpreter/type_checking.py5
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))