summaryrefslogtreecommitdiffstats
path: root/meta/classes/utils.bbclass
diff options
context:
space:
mode:
Diffstat (limited to 'meta/classes/utils.bbclass')
-rw-r--r--meta/classes/utils.bbclass29
1 files changed, 29 insertions, 0 deletions
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index 8c3a9b87e9..c66c18449a 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -341,3 +341,32 @@ def base_set_filespath(path, d):
341 for o in overrides.split(":"): 341 for o in overrides.split(":"):
342 filespath.append(os.path.join(p, o)) 342 filespath.append(os.path.join(p, o))
343 return ":".join(filespath) 343 return ":".join(filespath)
344
345def extend_variants(d, var, extend, delim=':'):
346 """Return a string of all bb class extend variants for the given extend"""
347 variants = []
348 whole = d.getVar(var, True) or ""
349 for ext in whole.split():
350 eext = ext.split(delim)
351 if len(eext) > 1 and eext[0] == extend:
352 variants.append(eext[1])
353 return " ".join(variants)
354
355def all_multilib_tune_values(d, var, unique=True):
356 """Return a string of all ${var} in all multilib tune configuration"""
357 values = []
358 value = d.getVar(var, True) or ""
359 if value != "":
360 values.append(value)
361 variants = d.getVar("MULTILIB_VARIANTS", True) or ""
362 for item in variants.split():
363 localdata = bb.data.createCopy(d)
364 overrides = localdata.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
365 localdata.setVar("OVERRIDES", overrides)
366 bb.data.update_data(localdata)
367 value = localdata.getVar(var, True) or ""
368 if value != "":
369 values.append(value)
370 if unique:
371 values = set(values)
372 return " ".join(values)