summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/buildstream/element.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index 6a0fa5fab..cdf3ae6f2 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -195,6 +195,10 @@ class Element(Plugin):
"""Whether the element produces an artifact when built.
"""
+ BST_NEVER_CACHE_BUILDTREES = False
+ """Whether the element prohibits caching of buildtrees.
+ """
+
def __init__(self, context: "Context", project: "Project", meta: "MetaElement", plugin_conf: Dict[str, Any]):
self.__cache_key_dict = None # Dict for cache key calculation
@@ -1576,7 +1580,10 @@ class Element(Plugin):
# This allows the remote execution sandbox to skip buildtree
# download when it's not needed.
buildroot = self.get_variable("build-root")
- cache_buildtrees = context.cache_buildtrees
+ if self.BST_NEVER_CACHE_BUILDTREES:
+ cache_buildtrees = _CacheBuildTrees.NEVER
+ else:
+ cache_buildtrees = context.cache_buildtrees
if cache_buildtrees != _CacheBuildTrees.NEVER:
always_cache_buildtrees = cache_buildtrees == _CacheBuildTrees.ALWAYS
sandbox._set_build_directory(buildroot, always=always_cache_buildtrees)
@@ -1634,7 +1641,10 @@ class Element(Plugin):
sandbox_build_dir = None
sourcesvdir = None
- cache_buildtrees = context.cache_buildtrees
+ if self.BST_NEVER_CACHE_BUILDTREES:
+ cache_buildtrees = _CacheBuildTrees.NEVER
+ else:
+ cache_buildtrees = context.cache_buildtrees
build_success = buildresult[0]
# cache_buildtrees defaults to 'auto', only caching buildtrees