mirror of
https://git.yoctoproject.org/poky
synced 2026-06-01 13:09:50 +00:00
utils: Add all_multilib_tune_list function
Its useful to be able to query a list of variables to obtain the values in each multilib context. This adds such a function which works even if called in the non-default recipe context. (From OE-Core rev: 4202a09dece07c0d3f654c2b1ae504a031b4ee90) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -382,3 +382,40 @@ def all_multilib_tune_values(d, var, unique = True, need_split = True, delim = '
|
|||||||
else:
|
else:
|
||||||
ret = values
|
ret = values
|
||||||
return " ".join(ret)
|
return " ".join(ret)
|
||||||
|
|
||||||
|
def all_multilib_tune_list(vars, d):
|
||||||
|
"""
|
||||||
|
Return a list of ${VAR} for each variable VAR in vars from each
|
||||||
|
multilib tune configuration.
|
||||||
|
Is safe to be called from a multilib recipe/context as it can
|
||||||
|
figure out the original tune and remove the multilib overrides.
|
||||||
|
"""
|
||||||
|
values = {}
|
||||||
|
for v in vars:
|
||||||
|
values[v] = []
|
||||||
|
|
||||||
|
localdata = bb.data.createCopy(d)
|
||||||
|
overrides = localdata.getVar("OVERRIDES", False).split(":")
|
||||||
|
newoverrides = []
|
||||||
|
for o in overrides:
|
||||||
|
if not o.startswith("virtclass-multilib-"):
|
||||||
|
newoverrides.append(o)
|
||||||
|
localdata.setVar("OVERRIDES", ":".join(newoverrides))
|
||||||
|
localdata.setVar("MLPREFIX", "")
|
||||||
|
origdefault = localdata.getVar("DEFAULTTUNE_MULTILIB_ORIGINAL", True)
|
||||||
|
if origdefault:
|
||||||
|
localdata.setVar("DEFAULTTUNE", origdefault)
|
||||||
|
bb.data.update_data(localdata)
|
||||||
|
values['ml'] = ['']
|
||||||
|
for v in vars:
|
||||||
|
values[v].append(localdata.getVar(v, True))
|
||||||
|
variants = d.getVar("MULTILIB_VARIANTS", True) or ""
|
||||||
|
for item in variants.split():
|
||||||
|
localdata = bb.data.createCopy(d)
|
||||||
|
overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
|
||||||
|
localdata.setVar("OVERRIDES", overrides)
|
||||||
|
localdata.setVar("MLPREFIX", item + "-")
|
||||||
|
bb.data.update_data(localdata)
|
||||||
|
values[v].append(localdata.getVar(v, True))
|
||||||
|
values['ml'].append(item)
|
||||||
|
return values
|
||||||
|
|||||||
Reference in New Issue
Block a user