diff options
Diffstat (limited to 'buildstream/element.py')
-rw-r--r-- | buildstream/element.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/buildstream/element.py b/buildstream/element.py index f7ce73288..b020fc6e1 100644 --- a/buildstream/element.py +++ b/buildstream/element.py @@ -216,17 +216,19 @@ class Element(Plugin): if visited is None: visited = {} + full_name = self._get_full_name() + scope_set = set((Scope.BUILD, Scope.RUN)) if scope == Scope.ALL else set((scope,)) - if self.name in visited and scope_set.issubset(visited[self.name]): + if full_name in visited and scope_set.issubset(visited[full_name]): return should_yield = False - if self.name not in visited: - visited[self.name] = scope_set + if full_name not in visited: + visited[full_name] = scope_set should_yield = True else: - visited[self.name] |= scope_set + visited[full_name] |= scope_set if recurse or not recursed: if scope == Scope.ALL: @@ -1684,3 +1686,6 @@ class Element(Plugin): # Load the public data from the artifact metadir = os.path.join(self.__artifacts.extract(self), 'meta') self.__dynamic_public = _yaml.load(os.path.join(metadir, 'public.yaml')) + + def _subst_string(self, value): + return self.__variables.subst(value) |