[Scons-users] clean vs build

Hua Yanghao huayanghao at gmail.com
Mon Jul 24 07:49:09 EDT 2017


On Mon, Jul 24, 2017 at 2:40 AM, Bill Deegan <bill at baddogconsulting.com> wrote:
> You might try this patch:
> http://scons.tigris.org/issues/show_bug.cgi?id=2901
>
> It's not vetted enough (yet) to be merged, but it worked for the filer, and
> another user said it was still catching real cycles.

Unfortunately this does not work for me:

hua at grass:~/git/usw $ git diff tools/
diff --git a/tools/scons-local-2.5.1/SCons/Taskmaster.py
b/tools/scons-local-2.5.1/SCons/Taskmaster.py
index 50a46a5..15320d3 100644
--- a/tools/scons-local-2.5.1/SCons/Taskmaster.py
+++ b/tools/scons-local-2.5.1/SCons/Taskmaster.py
@@ -869,9 +869,10 @@ class Taskmaster(object):
             # added the other children to the list of candidate nodes
             # to keep on building (--keep-going).
             if children_failed:
-                for n in executor.get_action_targets():
-                    n.set_state(NODE_FAILED)
+                #for n in executor.get_action_targets():
+                    #n.set_state(NODE_FAILED)

+                self.will_not_build((node,), lambda n:
n.set_state(NODE_FAILED))
                 if S: S.child_failed = S.child_failed + 1
                 if T: T.write(self.trace_message('****** %s\n' %
self.trace_node(node)))
                 continue
@@ -1030,7 +1031,7 @@ class Taskmaster(object):
             # All of the "cycles" found were single nodes in EXECUTED state,
             # which is to say, they really weren't cycles.  Just return.
             return
-        return
+
         desc = 'Found dependency cycle(s):\n'
         for node, cycle in nclist:
             if cycle:
hua at grass:~/git/usw $ make clean J=1
configs/linux64_full.py  -c -j8
Running : ./tools/scons config=linux64_full.py -c -j8
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Cleaning targets ...
scons: done cleaning targets.

scons: *** Found dependency cycle(s):
  Internal Error: no cycle found for node output/linux64_full
(<SCons.Node.FS.Dir object at 0x560fec41d410>) in state pending

File "/home/hua/git/usw/tools/scons-local-2.5.1/SCons/Taskmaster.py",
line 1044, in cleanup
configs/qemu_arm_vexpress.py  -c -j8


More information about the Scons-users mailing list