From: George Refseth Date: Mon, 18 May 2026 13:07:30 +0000 (+0200) Subject: cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=e955099a2eeff111709de180b127db866b217600;p=thirdparty%2Fopenembedded%2Fopenembedded-core.git cargo_common.bbclass: add subdir argument to git dependency to let cargo find crate When git referenced crate dependency dependens on (root) workspace virtual manifest, when patching path the path to the folder containing the crate within the referenced repo need to be added to the patching process. A subdir argument is added to address this need. Example usage when repo contains an api crate defining the api for org/repo: SRC_URI:append = "git://git@github.com//.git;name=api;destsuffix=repo-api;subdir=crates/api;type=git-dependency" Cc: Erik Wierich Signed-off-by: George Refseth Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- diff --git a/meta/classes-recipe/cargo_common.bbclass b/meta/classes-recipe/cargo_common.bbclass index 0d3edfe4a7..c1fe6a24ed 100644 --- a/meta/classes-recipe/cargo_common.bbclass +++ b/meta/classes-recipe/cargo_common.bbclass @@ -154,6 +154,9 @@ python cargo_common_do_patch_paths() { repo = '%s://%s@%s%s' % (ud.proto, ud.user, ud.host, ud.path) else: repo = '%s://%s%s' % (ud.proto, ud.host, ud.path) + subdir = ud.parm.get('subdir') + if subdir is not None: + destsuffix = os.path.join(destsuffix, subdir) path = '%s = { path = "%s" }' % (name, os.path.join(workdir, destsuffix)) patches.setdefault(repo, []).append(path)