summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Taskmaster.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-09-18 18:30:35 (GMT)
committerSteven Knight <knight@baldmt.com>2004-09-18 18:30:35 (GMT)
commitaeb8fd273afe8db3b98ad991d6afb94a6007c293 (patch)
tree0f9c43b8b55625dca1c3d9c27459af1fc2a97f5f /src/engine/SCons/Taskmaster.py
parent40f1769edcc4b9bfab72472899507a173d69e2a4 (diff)
downloadSCons-aeb8fd273afe8db3b98ad991d6afb94a6007c293.zip
SCons-aeb8fd273afe8db3b98ad991d6afb94a6007c293.tar.gz
SCons-aeb8fd273afe8db3b98ad991d6afb94a6007c293.tar.bz2
Build targets in an associated BuildDir even if there are local targets in the source directory. (Kevin Quick)
Diffstat (limited to 'src/engine/SCons/Taskmaster.py')
-rw-r--r--src/engine/SCons/Taskmaster.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/engine/SCons/Taskmaster.py b/src/engine/SCons/Taskmaster.py
index 84eb08d..6bd5e21 100644
--- a/src/engine/SCons/Taskmaster.py
+++ b/src/engine/SCons/Taskmaster.py
@@ -253,6 +253,7 @@ class Taskmaster:
self.ready = None # the next task that is ready to be executed
self.order = order
self.message = None
+ self.altered = []
def _find_next_ready_node(self):
"""Find the next node that is ready to be built"""
@@ -331,15 +332,15 @@ class Taskmaster:
self.ready = node
break
- # If there aren't any children with builders and this
- # was a top-level argument, then see if we can find any
+ # If this was a top-level argument and we haven't already
+ # done so, see if we can alter the target list to find any
# corresponding targets in linked build directories:
- if not derived and node in self.targets:
+ if node in self.targets and node not in self.altered:
alt, message = node.alter_targets()
if alt:
self.message = message
- self.candidates.pop()
- self.candidates.extend(alt)
+ self.candidates.extend(self.order(alt))
+ self.altered.append(node)
continue
# Add derived files that have not been built