diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-10-23 14:54:52 +0200 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-29 11:34:19 -0700 |
| commit | 000ff395cb44f87ede718926d6b73269a35afdc0 (patch) | |
| tree | c41d557a20b796a99e7335c5dc45c41966a102cd /mesonbuild | |
| parent | ff0da8872cc7270e0f1a375666ccad6a52bc215f (diff) | |
| download | meson-000ff395cb44f87ede718926d6b73269a35afdc0.tar.gz | |
cargo: ensure all prepared package are in self.packages
The next step is to ensure that all packages are in
self.packages prior to _prepare_package. For now,
instead, ensure that nothing breaks if the packages
are _absent_ from self.packages.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild')
| -rw-r--r-- | mesonbuild/cargo/interpreter.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py index ec5a93306..de40a3fac 100644 --- a/mesonbuild/cargo/interpreter.py +++ b/mesonbuild/cargo/interpreter.py @@ -243,6 +243,11 @@ class Interpreter: self.workspaces[subdir] = ws return ws + def _record_package(self, pkg: PackageState) -> None: + key = PackageKey(pkg.manifest.package.name, pkg.manifest.package.api) + if key not in self.packages: + self.packages[key] = pkg + def _require_workspace_member(self, ws: WorkspaceState, member: str) -> PackageState: member = os.path.normpath(member) pkg = ws.packages[member] @@ -308,6 +313,7 @@ class Interpreter: return pkg, False def _prepare_package(self, pkg: PackageState) -> None: + self._record_package(pkg) # Merge target specific dependencies that are enabled cfgs = self._get_cfgs(MachineChoice.HOST) for condition, dependencies in pkg.manifest.target.items(): |
