summaryrefslogtreecommitdiff
path: root/mesonbuild/interpreter
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2023-11-17 13:10:47 -0500
committerXavier Claessens <xclaesse@gmail.com>2025-10-20 14:37:58 -0400
commit5d496cc8b70188e38b1aa4dcc014e410c3484fe5 (patch)
treea920b7a021148eae665605c60d6f68c7feb1be5f /mesonbuild/interpreter
parent28e1684abaa8c6fe6e06048bf58f2b0e6b530763 (diff)
downloadmeson-5d496cc8b70188e38b1aa4dcc014e410c3484fe5.tar.gz
interpreter: Fix extract_object subproject validation
Fixes: #12519
Diffstat (limited to 'mesonbuild/interpreter')
-rw-r--r--mesonbuild/interpreter/interpreter.py5
-rw-r--r--mesonbuild/interpreter/interpreterobjects.py2
2 files changed, 2 insertions, 5 deletions
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 9bfc9be23..2211f997a 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -3530,11 +3530,6 @@ class Interpreter(InterpreterBase, HoldableObject):
elif isinstance(s, build.StructuredSources):
self.check_for_jar_sources(s.as_list(), targetclass)
- # Only permit object extraction from the same subproject
- def validate_extraction(self, buildtarget: mesonlib.HoldableObject) -> None:
- if self.subproject != buildtarget.subproject:
- raise InterpreterException('Tried to extract objects from a different subproject.')
-
def is_subproject(self) -> bool:
return self.subproject != ''
diff --git a/mesonbuild/interpreter/interpreterobjects.py b/mesonbuild/interpreter/interpreterobjects.py
index c4f56091a..4ff7e903e 100644
--- a/mesonbuild/interpreter/interpreterobjects.py
+++ b/mesonbuild/interpreter/interpreterobjects.py
@@ -950,6 +950,8 @@ class BuildTargetHolder(ObjectHolder[_BuildTarget]):
@typed_pos_args('extract_objects', varargs=(mesonlib.File, str, build.CustomTarget, build.CustomTargetIndex, build.GeneratedList))
@InterpreterObject.method('extract_objects')
def extract_objects_method(self, args: T.Tuple[T.List[T.Union[mesonlib.FileOrString, 'build.GeneratedTypes']]], kwargs: TYPE_nkwargs) -> build.ExtractedObjects:
+ if self.subproject != self.held_object.subproject:
+ raise InterpreterException('Tried to extract objects from a different subproject.')
tobj = self._target_object
unity_value = self.interpreter.coredata.get_option_for_target(tobj, "unity")
is_unity = (unity_value == 'on' or (unity_value == 'subprojects' and tobj.subproject != ''))