summaryrefslogtreecommitdiff
path: root/src/buildstream
diff options
context:
space:
mode:
authorJames Ennis <james.ennis@codethink.co.uk>2019-05-20 14:59:14 +0100
committerJürg Billeter <j@bitron.ch>2019-05-23 16:36:03 +0200
commit6eae1b6c6b95234866f01b2c9e89544a7ee7dd94 (patch)
tree97427e6fbf67c1420a5a45563d7665094e1a9182 /src/buildstream
parent4b12cb16d07d62bd790e6a1c388e1c8402c95d75 (diff)
downloadbuildstream-6eae1b6c6b95234866f01b2c9e89544a7ee7dd94.tar.gz
WIP: element.py: Two ready for runtimes...
Diffstat (limited to 'src/buildstream')
-rw-r--r--src/buildstream/element.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/buildstream/element.py b/src/buildstream/element.py
index 08326c6f3..587e9133f 100644
--- a/src/buildstream/element.py
+++ b/src/buildstream/element.py
@@ -208,7 +208,8 @@ class Element(Plugin):
self.__runtime_dependencies = [] # Direct runtime dependency Elements
self.__build_dependencies = [] # Direct build dependency Elements
self.__reverse_dependencies = set() # Direct reverse dependency Elements
- self.__ready_for_runtime = False # Wether the element has all its dependencies ready and has a cache key
+ self.__ready_for_runtime = False # Whether the element has all dependencies ready and has a cache key
+ self.__ready_for_runtime_2 = False # XXX: Probably need a better name than this
self.__sources = [] # List of Sources
self.__weak_cache_key = None # Our cached weak cache key
self.__strict_cache_key = None # Our cached cache key for strict builds
@@ -1219,6 +1220,14 @@ class Element(Plugin):
self.__ready_for_runtime = all(
dep.__ready_for_runtime for dep in self.__runtime_dependencies)
+ if not self.__ready_for_runtime_2 and self.__cache_key is not None and self._cached():
+ self.__ready_for_runtime_2 = all(
+ dep.__ready_for_runtime_2 for dep in self.__runtime_dependencies)
+
+ if self.__buildable_callback is not None and self._buildable():
+ self.__buildable_callback(self)
+ self.__buildable_callback = None
+
# _get_display_key():
#
# Returns cache keys for display purposes
@@ -2873,10 +2882,12 @@ class Element(Plugin):
element = queue.pop()
old_ready_for_runtime = element.__ready_for_runtime
+ old_ready_for_runtime_2 = element.__ready_for_runtime_2
old_strict_cache_key = element.__strict_cache_key
element._update_state()
if element.__ready_for_runtime != old_ready_for_runtime or \
+ element.__ready_for_runtime_2 != old_ready_for_runtime_2 or \
element.__strict_cache_key != old_strict_cache_key:
for rdep in element.__reverse_dependencies:
queue.push(rdep._unique_id, rdep)