jam: add internal dependencies for multi-file generating actions

* Based on https://svn.boost.org/trac/boost/changeset/39341
This commit is contained in:
Jessica Hamilton 2014-10-21 19:33:28 +13:00
parent d86116d57a
commit c2607d0bbd

View File

@ -576,6 +576,25 @@ evaluate_rule(
action->rule = rule; action->rule = rule;
action->targets = targetlist( (TARGETS *)0, lol_get( args, 0 ) ); action->targets = targetlist( (TARGETS *)0, lol_get( args, 0 ) );
action->sources = targetlist( (TARGETS *)0, lol_get( args, 1 ) ); action->sources = targetlist( (TARGETS *)0, lol_get( args, 1 ) );
/* Make targets[1,N-1] depend on targets[0], to describe the */
/* generated targets for the rule. Do it with includes, to */
/* reflect non-build dependency. */
if( action->targets )
{
TARGET *t0 = action->targets->target;
for( t = action->targets->next; t; t = t->next )
{
TARGET *tn = t->target;
if( !tn->includes )
{
tn->includes = copytarget( tn );
}
tn = tn->includes;
tn->depends = targetentry( tn->depends, t0 );
}
}
/* Append this action to the actions of each target */ /* Append this action to the actions of each target */