diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-10-26 11:50:15 +0100 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-29 11:34:19 -0700 |
| commit | 940361f4596b5b12d10df28de2cca0f892135746 (patch) | |
| tree | fb54ac9284a771c602845787d480130645a5f406 | |
| parent | 7945110915e438d4d47c26c5bfa510d88b99ac7a (diff) | |
| download | meson-940361f4596b5b12d10df28de2cca0f892135746.tar.gz | |
cargo: propagate PackageState from the full resolution into workspaces
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | mesonbuild/cargo/interpreter.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py index c7ee8e8fc..dc8bf4bdf 100644 --- a/mesonbuild/cargo/interpreter.py +++ b/mesonbuild/cargo/interpreter.py @@ -319,9 +319,13 @@ class Interpreter: self._add_workspace_member(manifest_, ws, m) def _add_workspace_member(self, manifest_: Manifest, ws: WorkspaceState, m: str) -> None: - pkg = PackageState(manifest_, ws_subdir=ws.subdir, ws_member=m, downloaded=ws.downloaded) - ws.packages[m] = pkg + key = PackageKey(manifest_.package.name, manifest_.package.api) ws.packages_to_member[manifest_.package.name] = m + if key in self.packages: + ws.packages[m] = self.packages[key] + self._require_workspace_member(ws, m) + else: + ws.packages[m] = PackageState(manifest_, ws_subdir=ws.subdir, ws_member=m, downloaded=ws.downloaded) def _get_workspace(self, manifest: T.Union[Workspace, Manifest], subdir: str, downloaded: bool) -> WorkspaceState: ws = self.workspaces.get(subdir) |
