diff options
author | James Ennis <james.ennis@codethink.co.uk> | 2019-05-20 14:59:14 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2019-05-23 16:36:03 +0200 |
commit | 6eae1b6c6b95234866f01b2c9e89544a7ee7dd94 (patch) | |
tree | 97427e6fbf67c1420a5a45563d7665094e1a9182 /src/buildstream | |
parent | 4b12cb16d07d62bd790e6a1c388e1c8402c95d75 (diff) | |
download | buildstream-6eae1b6c6b95234866f01b2c9e89544a7ee7dd94.tar.gz |
WIP: element.py: Two ready for runtimes...
Diffstat (limited to 'src/buildstream')
-rw-r--r-- | src/buildstream/element.py | 13 |
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) |