Author: housel
Date: Fri Jan 21 15:58:33 2005
New Revision: 9757
Modified:
trunk/fundev/Sources/lib/jam/jam-target-build.dylan
Log:
Bug: 7003
Insure that all dependencies of a target are bound before invoking an action
that builds it.
Modified: trunk/fundev/Sources/lib/jam/jam-target-build.dylan
==============================================================================
--- trunk/fundev/Sources/lib/jam/jam-target-build.dylan (original)
+++ trunk/fundev/Sources/lib/jam/jam-target-build.dylan Fri Jan 21 15:58:33 2005
@@ -45,6 +45,22 @@
// recursively bind dependencies
do(curry(bind-aux, time-target), target.target-depends);
+ let seen = make(<object-set>);
+ for(depend in target.target-depends)
+ bind-aux(time-target, depend);
+ end for;
+ add!(seen, target);
+
+ for (invocation in target.target-action-invocations)
+ for (target in invocation.action-invocation-targets)
+ unless (member?(target, seen))
+ for(depend in target.target-depends)
+ bind-aux(time-target, depend)
+ end for;
+ add!(seen, target);
+ end unless;
+ end for;
+ end for;
// bind includes target
if (target.target-includes-target)
@@ -197,6 +213,10 @@
target.target-build-progress := #"active";
+ unless (target.target-build-status > $build-status-init)
+ error("target %s was never bound", target.target-name);
+ end;
+
if (target.target-build-status > $build-status-stable)
with-jam-target(jam, target)
for (invocation in target.target-action-invocations)
--
Gd-chatter mailing list
Gd-chatter@xxxxxxxxxxxxxxxx
https://gauss.gwydiondylan.org/mailman/listinfo/gd-chatter
|
|