mirror of
https://git.yoctoproject.org/poky
synced 2026-04-20 00:32:13 +02:00
oeqa/utils/command: fast-path get_bb_var()
get_bb_var() currently end up calling 'bitbake -e' and parsing the whole output. However if postconfig isn't set then we can speed this up by just calling bitbake-getvar. The complication with failing bitbake-getvar calls is because we need to be careful to return None instead of the empty string when the variable doesn't exist. (From OE-Core rev: fafe77879aa6225aa8b5187ff590bb4998cbf987) Signed-off-by: Ross Burton <ross.burton@arm.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
d56b141a4e
commit
55c4f54106
@@ -285,7 +285,20 @@ def get_bb_vars(variables=None, target=None, postconfig=None):
|
||||
return values
|
||||
|
||||
def get_bb_var(var, target=None, postconfig=None):
|
||||
return get_bb_vars([var], target, postconfig)[var]
|
||||
if postconfig:
|
||||
return bitbake("-e %s" % target or "", postconfig=postconfig).output
|
||||
else:
|
||||
# Fast-path for the non-postconfig case
|
||||
cmd = ["bitbake-getvar", "--quiet", "--value", var]
|
||||
if target:
|
||||
cmd.extend(["--recipe", target])
|
||||
try:
|
||||
return subprocess.run(cmd, check=True, text=True, stdout=subprocess.PIPE).stdout.strip()
|
||||
except subprocess.CalledProcessError as e:
|
||||
# We need to return None not the empty string if the variable hasn't been set.
|
||||
if e.returncode == 1:
|
||||
return None
|
||||
raise
|
||||
|
||||
def get_test_layer(bblayers=None):
|
||||
if bblayers is None:
|
||||
|
||||
Reference in New Issue
Block a user