diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-10-23 09:51:19 +0200 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-10-29 11:34:19 -0700 |
| commit | 5c01c56fd5e63667feaf2bcb61b57cc288eb3dfd (patch) | |
| tree | caeb6d99cce6cdaced07b48665f9bf35b1835cff | |
| parent | ae311ae85c52124ca3648e6e20df95ccda2c4b70 (diff) | |
| download | meson-5c01c56fd5e63667feaf2bcb61b57cc288eb3dfd.tar.gz | |
cargo: ensure default members is valid
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | mesonbuild/cargo/interpreter.py | 10 | ||||
| -rw-r--r-- | mesonbuild/cargo/manifest.py | 2 |
2 files changed, 4 insertions, 8 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py index 204c67743..77f85cff5 100644 --- a/mesonbuild/cargo/interpreter.py +++ b/mesonbuild/cargo/interpreter.py @@ -175,14 +175,8 @@ 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: - 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) + for member in ws.workspace.default_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 diff --git a/mesonbuild/cargo/manifest.py b/mesonbuild/cargo/manifest.py index a194d0120..ec84e4b16 100644 --- a/mesonbuild/cargo/manifest.py +++ b/mesonbuild/cargo/manifest.py @@ -568,6 +568,8 @@ class Workspace: ws = _raw_to_dataclass(raw['workspace'], cls, 'Workspace') if 'package' in raw: ws.root_package = Manifest.from_raw(raw, path, ws, '.') + if not ws.default_members: + ws.default_members = ['.'] if ws.root_package else ws.members return ws |
