binman: build_from_git: Add argument specifying branch

Add optional argument git_branch to build_from_git. The new argument
allows specifying which branch of the repo to use.

Signed-off-by: Leonard Anderweit <l.anderweit@phytec.de>
This commit is contained in:
Leonard Anderweit
2025-02-26 22:04:59 +01:00
committed by Simon Glass
parent 61f6f714ea
commit 7190844262

View File

@@ -328,7 +328,8 @@ class Bintool:
return result.stdout
@classmethod
def build_from_git(cls, git_repo, make_targets, bintool_path, flags=None):
def build_from_git(cls, git_repo, make_targets, bintool_path,
flags=None, git_branch=None):
"""Build a bintool from a git repo
This clones the repo in a temporary directory, builds it with 'make',
@@ -341,6 +342,7 @@ class Bintool:
bintool_path (str): Relative path of the tool in the repo, after
build is complete
flags (list of str): Flags or variables to pass to make, or None
git_branch (str): Branch of git repo, or None to use the default
Returns:
tuple:
@@ -350,7 +352,11 @@ class Bintool:
"""
tmpdir = tempfile.mkdtemp(prefix='binmanf.')
print(f"- clone git repo '{git_repo}' to '{tmpdir}'")
tools.run('git', 'clone', '--depth', '1', git_repo, tmpdir)
if git_branch:
tools.run('git', 'clone', '--depth', '1', '--branch', git_branch,
git_repo, tmpdir)
else:
tools.run('git', 'clone', '--depth', '1', git_repo, tmpdir)
for target in make_targets:
print(f"- build target '{target}'")
cmd = ['make', '-C', tmpdir, '-j', f'{multiprocessing.cpu_count()}',