[Scons-dev] Fwd:Problem with up-to-date state of node

Tom Tanner (BLOOMBERG/ LONDON) ttanner2 at bloomberg.net
Wed Apr 17 09:36:21 EDT 2013


There seems to be some inconsistency with whether or not a node is considered to be up to date. For instance, if I have a chain of dependencies

A is built from B is build from C is built from D,

If I delete C, then B considers that C is not up to date, which is all well and good. However, if I *change* D, then at some point before C is built B considers that C is up_to_date.

This is all well and good, but the scanner code for built objects goes and checks if a node is up to date, and if it isn't, then it returns an empty list of dependencies. This has some very strange results.

In particular, if B is a C++ source code file, and I alter D, then the build proceeds as normal, but the scanner processes B twice. (Presumably succesfully, but it's difficult to tell, as the #includes don't change).

But if I delete C, then the scanner processes B once and decides that there are no includes. A is then built but has an empty set of dependencies so the next time you do a build, A gets built again because this time, the scanner processes B properly.

So there's two things I am confused about:
1) Why does an alteration to D not make the system think B is no longer up to date
2) Why is the scanner not getting called again before building A? And/or does the check for the source file being up-to-date actually achieve anything, given it appears to get called twice


More information about the Scons-dev mailing list