Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r79573 - trunk/tools/build/v2/build
From: jurko.gospodnetic_at_[hidden]
Date: 2012-07-17 05:29:03


Author: jurko
Date: 2012-07-17 05:29:02 EDT (Tue, 17 Jul 2012)
New Revision: 79573
URL: http://svn.boost.org/trac/boost/changeset/79573

Log:
Reverting revision [79571] since it broke the generators_test.py Boost Build test. It seems Boost Jam might not have the complete fix implemented to allow us to avoid this Boost Build code.
Text files modified:
   trunk/tools/build/v2/build/virtual-target.jam | 13 +++++++++++++
   trunk/tools/build/v2/build/virtual_target.py | 11 +++++++++++
   2 files changed, 24 insertions(+), 0 deletions(-)

Modified: trunk/tools/build/v2/build/virtual-target.jam
==============================================================================
--- trunk/tools/build/v2/build/virtual-target.jam (original)
+++ trunk/tools/build/v2/build/virtual-target.jam 2012-07-17 05:29:02 EDT (Tue, 17 Jul 2012)
@@ -761,6 +761,19 @@
             DEPENDS $(actual-targets) : $(self.actual-sources)
                 $(self.dependency-only-sources) ;
 
+ # This works around a bug with -j and actions that produce multiple
+ # target, where:
+ # - dependency on the first output is found, and the action is
+ # started
+ # - dependency on the second output is found, and bjam noticed that
+ # command is already running
+ # - instead of waiting for the command, dependents of the second
+ # targets are immediately updated.
+ if $(actual-targets[2])
+ {
+ INCLUDES $(actual-targets) : $(actual-targets) ;
+ }
+
             # Action name can include additional argument to rule, which should
             # not be passed to 'set-target-variables'
             toolset.set-target-variables

Modified: trunk/tools/build/v2/build/virtual_target.py
==============================================================================
--- trunk/tools/build/v2/build/virtual_target.py (original)
+++ trunk/tools/build/v2/build/virtual_target.py 2012-07-17 05:29:02 EDT (Tue, 17 Jul 2012)
@@ -797,6 +797,17 @@
 
         self.engine_.add_dependency (actual_targets, self.actual_sources_ + self.dependency_only_sources_)
 
+ # This works around a bug with -j and actions that
+ # produce multiple target, where:
+ # - dependency on the first output is found, and
+ # the action is started
+ # - dependency on the second output is found, and
+ # bjam noticed that command is already running
+ # - instead of waiting for the command, dependents
+ # of the second targets are immediately updated.
+ if len(actual_targets) > 1:
+ bjam.call("INCLUDES", actual_targets, actual_targets)
+
         # FIXME: check the comment below. Was self.action_name_ [1]
         # Action name can include additional argument to rule, which should not
         # be passed to 'set-target-variables'


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