@@ -831,26 +831,29 @@ def load_cargo_lock(filename: str, subproject_dir: str) -> T.Optional[CargoLock]
831831 checksum = cargolock .metadata [f'checksum { package .name } { package .version } ({ package .source } )' ]
832832 url = f'https://crates.io/api/v1/crates/{ package .name } /{ package .version } /download'
833833 directory = f'{ package .name } -{ package .version } '
834- if directory not in wraps :
835- wraps [directory ] = PackageDefinition .from_values (meson_depname , subproject_dir , 'file' , {
836- 'directory' : directory ,
837- 'source_url' : url ,
838- 'source_filename' : f'{ directory } .tar.gz' ,
839- 'source_hash' : checksum ,
840- 'method' : 'cargo' ,
841- })
842- wraps [directory ].add_provided_dep (meson_depname )
834+ name = meson_depname
835+ cfg = {
836+ 'directory' : directory ,
837+ 'source_url' : url ,
838+ 'source_filename' : f'{ directory } .tar.gz' ,
839+ 'source_hash' : checksum ,
840+ 'method' : 'cargo' ,
841+ }
843842 elif package .source .startswith ('git+' ):
844843 url , revision , directory = _parse_git_url (package .source )
845- if directory not in wraps :
846- wraps [ directory ] = PackageDefinition . from_values ( directory , subproject_dir , 'git' , {
847- 'url' : url ,
848- 'revision' : revision ,
849- 'method' : 'cargo' ,
850- })
844+ name = directory
845+ cfg = {
846+ 'url' : url ,
847+ 'revision' : revision ,
848+ 'method' : 'cargo' ,
849+ }
851850 wraps [directory ].add_provided_dep (meson_depname )
852851 else :
853852 mlog .warning (f'Unsupported source URL in { filename } : { package .source } ' )
853+ continue
854+ if directory not in wraps :
855+ wraps [directory ] = PackageDefinition .from_values (name , subproject_dir , 'file' , cfg )
856+ wraps [directory ].add_provided_dep (meson_depname )
854857 cargolock .wraps = {w .name : w for w in wraps .values ()}
855858 return cargolock
856859 return None
0 commit comments