diff options
| author | Xavier Claessens <xavier.claessens@collabora.com> | 2023-11-17 13:10:47 -0500 |
|---|---|---|
| committer | Xavier Claessens <xclaesse@gmail.com> | 2025-10-20 14:37:58 -0400 |
| commit | 5d496cc8b70188e38b1aa4dcc014e410c3484fe5 (patch) | |
| tree | a920b7a021148eae665605c60d6f68c7feb1be5f /mesonbuild/interpreter | |
| parent | 28e1684abaa8c6fe6e06048bf58f2b0e6b530763 (diff) | |
| download | meson-5d496cc8b70188e38b1aa4dcc014e410c3484fe5.tar.gz | |
interpreter: Fix extract_object subproject validation
Fixes: #12519
Diffstat (limited to 'mesonbuild/interpreter')
| -rw-r--r-- | mesonbuild/interpreter/interpreter.py | 5 | ||||
| -rw-r--r-- | mesonbuild/interpreter/interpreterobjects.py | 2 |
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 != '')) |
