summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-11-18 09:55:51 +0100
committerPaolo Bonzini <pbonzini@redhat.com>2025-12-22 11:58:30 +0100
commitd1ea846b6bbb5cbf09d8e9707707c40af3cf7c92 (patch)
tree9b8b7728a6fbe24efbaeedba7247d70f8c0e16fa
parent88e61261265607a4bcbeabc055e643d2ee2e66dd (diff)
downloadmeson-d1ea846b6bbb5cbf09d8e9707707c40af3cf7c92.tar.gz
cargo: show nice exception if Cargo.toml missing
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--mesonbuild/cargo/interpreter.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index db7c0a1ed..4f3acc133 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -480,8 +480,12 @@ class Interpreter:
return manifest_, True
path = os.path.join(self.environment.source_dir, subdir)
filename = os.path.join(path, 'Cargo.toml')
+ try:
+ raw_manifest = T.cast('raw.Manifest', load_toml(filename))
+ except OSError as e:
+ raise MesonException(f'could not load {subdir}/Cargo.toml: {e}')
+
self.build_def_files.append(filename)
- raw_manifest = T.cast('raw.Manifest', load_toml(filename))
if 'workspace' in raw_manifest:
manifest_ = Workspace.from_raw(raw_manifest, path)
elif 'package' in raw_manifest: