summaryrefslogtreecommitdiff
path: root/mesonbuild/cargo/interpreter.py
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-10-23 09:39:30 +0200
committerDylan Baker <dylan@pnwbakers.com>2025-10-29 11:34:19 -0700
commitd2f58f996b5b75ca83ffd968a1de938bcc63dbf4 (patch)
treee66a03aa9ec62322826ef665693a4b0d51ff8e0e /mesonbuild/cargo/interpreter.py
parent5c01c56fd5e63667feaf2bcb61b57cc288eb3dfd (diff)
downloadmeson-d2f58f996b5b75ca83ffd968a1de938bcc63dbf4.tar.gz
cargo: allow putting "." in members
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'mesonbuild/cargo/interpreter.py')
-rw-r--r--mesonbuild/cargo/interpreter.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index 77f85cff5..eff4450b5 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -208,6 +208,8 @@ class Interpreter:
def _load_workspace_member(self, ws: WorkspaceState, m: str) -> None:
m = os.path.normpath(m)
+ if m in ws.packages:
+ return
# Load member's manifest
m_subdir = os.path.join(ws.subdir, m)
manifest_ = self._load_manifest(m_subdir, ws.workspace, m)
@@ -215,8 +217,6 @@ class Interpreter:
self._add_workspace_member(manifest_, ws, m)
def _add_workspace_member(self, manifest_: Manifest, ws: WorkspaceState, m: str) -> None:
- if m in ws.packages:
- return
pkg = PackageState(manifest_, ws_subdir=ws.subdir, ws_member=m)
ws.packages[m] = pkg
ws.packages_to_member[manifest_.package.name] = m
@@ -226,10 +226,10 @@ class Interpreter:
if ws:
return ws
ws = WorkspaceState(workspace, subdir)
- for m in workspace.members:
- self._load_workspace_member(ws, m)
if workspace.root_package:
self._add_workspace_member(workspace.root_package, ws, '.')
+ for m in workspace.members:
+ self._load_workspace_member(ws, m)
self.workspaces[subdir] = ws
return ws