diff options
| author | Paolo Bonzini <pbonzini@redhat.com> | 2025-11-28 17:29:31 +0100 |
|---|---|---|
| committer | Dylan Baker <dylan@pnwbakers.com> | 2025-12-08 10:07:44 -0800 |
| commit | 7f6967f7ddc9268869718393c7d9043f6e1d255d (patch) | |
| tree | d71f339d1b5dd1daffb4752d09fd8b4805ab6638 | |
| parent | 5882e83590c3396b44e309d9332acf63a157f69d (diff) | |
| download | meson-7f6967f7ddc9268869718393c7d9043f6e1d255d.tar.gz | |
cargo: unify call to PackageDefinition.from_values
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
| -rw-r--r-- | mesonbuild/cargo/interpreter.py | 33 |
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 |
