diff --git a/bitbake/lib/bb/cache.py b/bitbake/lib/bb/cache.py index c09f9296bd..658f30ff59 100644 --- a/bitbake/lib/bb/cache.py +++ b/bitbake/lib/bb/cache.py @@ -401,14 +401,18 @@ class Cache(object): infos = [] datastores = cls.load_bbfile(filename, appends, configdata) depends = [] + variants = [] + # Process the "real" fn last so we can store variants list for variant, data in sorted(datastores.items(), key=lambda i: i[0], reverse=True): virtualfn = cls.realfn2virtual(filename, variant) + variants.append(variant) depends = depends + (data.getVar("__depends", False) or []) if depends and not variant: data.setVar("__depends", depends) - + if virtualfn == filename: + data.setVar("__VARIANTS", " ".join(variants)) info_array = [] for cache_class in caches_array: info = cache_class(filename, data) diff --git a/bitbake/lib/bb/parse/ast.py b/bitbake/lib/bb/parse/ast.py index 8b9baa764c..0fc3a9e7a4 100644 --- a/bitbake/lib/bb/parse/ast.py +++ b/bitbake/lib/bb/parse/ast.py @@ -469,9 +469,5 @@ def multi_finalize(fn, d): except bb.parse.SkipRecipe as e: datastores[variant].setVar("__SKIPPED", e.args[0]) - if len(datastores) > 1: - variants = filter(None, datastores.keys()) - safe_d.setVar("__VARIANTS", " ".join(variants)) - datastores[""] = d return datastores