summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Maat <tristan.maat@codethink.co.uk>2017-10-31 15:58:14 +0000
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-11-04 17:35:30 +0900
commit6d6f44eaa38222ce7f339e1d9e0321c96614f656 (patch)
tree530cb5a8842f75e9e4b92179e16ac3c2d49796f4
parent2a7d316d9480f50fa67b0958eb3f1341450e63cd (diff)
downloadbuildstream-6d6f44eaa38222ce7f339e1d9e0321c96614f656.tar.gz
_pipeline.py: Misc adjustments to multiple targets
-rw-r--r--buildstream/_pipeline.py29
1 files changed, 22 insertions, 7 deletions
diff --git a/buildstream/_pipeline.py b/buildstream/_pipeline.py
index 8d390fc3a..05801895e 100644
--- a/buildstream/_pipeline.py
+++ b/buildstream/_pipeline.py
@@ -39,6 +39,7 @@ from . import Scope
from . import _site
from . import _yaml, utils
from ._platform import Platform
+from .element import Element
from ._scheduler import SchedStatus, TrackQueue, FetchQueue, BuildQueue, PullQueue, PushQueue
@@ -170,13 +171,14 @@ class Pipeline():
self.total_elements = len(list(self.dependencies(Scope.ALL)))
for element_name, source, workspace in project._list_workspaces():
- element = self.target.search(Scope.ALL, element_name)
+ for target in self.targets:
+ element = target.search(Scope.ALL, element_name)
- if element is None:
- self.unused_workspaces.append((element_name, source, workspace))
- continue
+ if element is None:
+ self.unused_workspaces.append((element_name, source, workspace))
+ continue
- self.project._set_workspace(element, source, workspace)
+ self.project._set_workspace(element, source, workspace)
if fetch_remote_refs and self.artifacts.can_fetch():
try:
@@ -207,7 +209,20 @@ class Pipeline():
# also iterate over sources.
#
def dependencies(self, scope, include_sources=False):
- for element in self.target.dependencies(scope):
+ # Create a dummy element (can't use namedtuple because of the
+ # '__' prefix).
+ class DummyElement(object):
+ def __init__(self, build_dependencies, runtime_dependencies):
+ self.name = ''
+ self._Element__build_dependencies = build_dependencies
+ self._Element__runtime_dependencies = runtime_dependencies
+ dummy = DummyElement(self.targets, self.targets)
+
+ for element in Element.dependencies(dummy, scope):
+ # We don't actually want to find the dummy element
+ if isinstance(element, DummyElement):
+ continue
+
if include_sources:
for source in element.sources():
yield source
@@ -775,7 +790,7 @@ class Pipeline():
elements = None
if mode == 'none':
- elements = [self.target]
+ elements = self.targets
elif mode == 'plan':
elements = list(self.plan())
else: