diff options
Diffstat (limited to 'morphlib/buildcommand.py')
-rw-r--r-- | morphlib/buildcommand.py | 14 |
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 |