summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xclaessens@netflix.com>2025-10-17 15:44:00 -0400
committerXavier Claessens <xclaesse@gmail.com>2025-10-17 16:15:42 -0400
commitf4ad0ef5a3c9ff69daed2987249c9a6fe30465c6 (patch)
tree1c457b2761fd0956880c0d81d6fba42d9278563f
parent7b7c2a1084135d28036a40b22d34eb6a95544eb8 (diff)
downloadmeson-f4ad0ef5a3c9ff69daed2987249c9a6fe30465c6.tar.gz
cargo: Handle the case default-members is not defined
It should fallback to root package, then all members: https://doc.rust-lang.org/cargo/reference/workspaces.html#the-default-members-field
-rw-r--r--mesonbuild/cargo/interpreter.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index c403f9707..ba08e6d7c 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -151,8 +151,14 @@ class Interpreter:
self.environment.wrap_resolver.load_and_merge(subprojects_dir, T.cast('SubProject', name))
ast: T.List[mparser.BaseNode] = []
if not ws.required_members:
- for member in ws.workspace.default_members:
- self._require_workspace_member(ws, member)
+ if ws.workspace.default_members:
+ for member in ws.workspace.default_members:
+ self._require_workspace_member(ws, member)
+ elif ws.workspace.root_package:
+ self._require_workspace_member(ws, '.')
+ else:
+ for member in ws.workspace.members:
+ self._require_workspace_member(ws, member)
# Call subdir() for each required member of the workspace. The order is
# important, if a member depends on another member, that member must be