summaryrefslogtreecommitdiff
path: root/morphlib/buildcommand.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/buildcommand.py')
-rw-r--r--morphlib/buildcommand.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/morphlib/buildcommand.py b/morphlib/buildcommand.py
index a0922165..82080b8c 100644
--- a/morphlib/buildcommand.py
+++ b/morphlib/buildcommand.py
@@ -283,8 +283,22 @@ class BuildCommand(object):
def build_in_order(self, root_artifact):
'''Build everything specified in a build order.'''
+ # If the root artifact is a system and it is cached, don't fetch
+ # or build the system's stratum and chunk artifacts
+ if root_artifact.source.morphology['kind'] == 'system':
+ if self.rac is not None:
+ try:
+ self.cache_artifacts_locally([root_artifact])
+ except morphlib.remoteartifactcache.GetError:
+ pass
+ else:
+ return
+ if self.lac.has(root_artifact):
+ return
+
self.app.status(msg='Starting build of %(name)s',
name=root_artifact.source.name)
+
build_env = root_artifact.build_env
ordered_sources = list(self.get_ordered_sources(root_artifact.walk()))
old_prefix = self.app.status_prefix