summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2025-11-28 17:29:31 +0100
committerDylan Baker <dylan@pnwbakers.com>2025-12-08 10:07:44 -0800
commit7f6967f7ddc9268869718393c7d9043f6e1d255d (patch)
treed71f339d1b5dd1daffb4752d09fd8b4805ab6638
parent5882e83590c3396b44e309d9332acf63a157f69d (diff)
downloadmeson-7f6967f7ddc9268869718393c7d9043f6e1d255d.tar.gz
cargo: unify call to PackageDefinition.from_values
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
-rw-r--r--mesonbuild/cargo/interpreter.py33
1 files changed, 18 insertions, 15 deletions
diff --git a/mesonbuild/cargo/interpreter.py b/mesonbuild/cargo/interpreter.py
index 25a1b70db..06076fa69 100644
--- a/mesonbuild/cargo/interpreter.py
+++ b/mesonbuild/cargo/interpreter.py
@@ -831,26 +831,29 @@ def load_cargo_lock(filename: str, subproject_dir: str) -> T.Optional[CargoLock]
checksum = cargolock.metadata[f'checksum {package.name} {package.version} ({package.source})']
url = f'https://crates.io/api/v1/crates/{package.name}/{package.version}/download'
directory = f'{package.name}-{package.version}'
- if directory not in wraps:
- wraps[directory] = PackageDefinition.from_values(meson_depname, subproject_dir, 'file', {
- 'directory': directory,
- 'source_url': url,
- 'source_filename': f'{directory}.tar.gz',
- 'source_hash': checksum,
- 'method': 'cargo',
- })
- wraps[directory].add_provided_dep(meson_depname)
+ name = meson_depname
+ cfg = {
+ 'directory': directory,
+ 'source_url': url,
+ 'source_filename': f'{directory}.tar.gz',
+ 'source_hash': checksum,
+ 'method': 'cargo',
+ }
elif package.source.startswith('git+'):
url, revision, directory = _parse_git_url(package.source)
- if directory not in wraps:
- wraps[directory] = PackageDefinition.from_values(directory, subproject_dir, 'git', {
- 'url': url,
- 'revision': revision,
- 'method': 'cargo',
- })
+ name = directory
+ cfg = {
+ 'url': url,
+ 'revision': revision,
+ 'method': 'cargo',
+ }
wraps[directory].add_provided_dep(meson_depname)
else:
mlog.warning(f'Unsupported source URL in {filename}: {package.source}')
+ continue
+ if directory not in wraps:
+ wraps[directory] = PackageDefinition.from_values(name, subproject_dir, 'file', cfg)
+ wraps[directory].add_provided_dep(meson_depname)
cargolock.wraps = {w.name: w for w in wraps.values()}
return cargolock
return None