Subject: [Boost-commit] svn:boost r79586 - trunk/tools/build/v2/engine
Date: 2012-07-18 10:50:54
Date: 2012-07-18 10:50:53 EDT (Wed, 18 Jul 2012)
New Revision: 79586
Updated Boost Jam implementation comment related to it adding internal fake INCLUDES relationships between targets built by a single action in order to make sure none of them may get used until their action had successfully completed its work.
Text files modified:
trunk/tools/build/v2/engine/compile.c | 17 ++++++++++++++---
1 files changed, 14 insertions(+), 3 deletions(-)
--- trunk/tools/build/v2/engine/compile.c (original)
+++ trunk/tools/build/v2/engine/compile.c 2012-07-18 10:50:53 EDT (Wed, 18 Jul 2012)
@@ -172,9 +172,20 @@
* action if possible and not rebuild targets not actually depending on
* targets that are not up to date.
- * TODO: Using the 'include' feature might have side-effects due to
- * interaction with the actual 'inclusion scanning' system. This should
- * be checked.
+ * TODO: Current solution using fake INCLUDES relations may cause
+ * actions to be run when the affected targets are built by multiple
+ * actions. E.g. if we have the following actions registered in the
+ * order specified:
+ * (I) builds targets A & B
+ * (II) builds target B
+ * and we want to build a target depending on target A, then both
+ * actions (I) & (II) will be run, even though the second one does not
+ * have any direct relationship to target A. Consider whether this is
+ * desired behaviour or not. It could be that Boost Build should (or
+ * possibly already does) run all actions registered for a given target
+ * if any of them needs to be run in which case our INCLUDES relations
+ * are not actually causing any actions to be run that would not have
+ * been run without them.
if ( action->targets )
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk