2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-15 13:02:11 +00:00

Move calling target action to an action method to allow override.

This moves the calling of the target action rule to an "execute" method
in the action class. This allows one to create a custom generator that
makes corresponding action classes. That in turn can override the
"execute" to do other work on the engine targets directly.
This commit is contained in:
Rene Rivera
2017-07-10 20:06:26 -06:00
parent afde1889fa
commit ea4ee77fe6

View File

@@ -794,7 +794,9 @@ class action
# rules.
.action on $(actual-targets) = $(__name__) ;
indirect.call $(self.action-name) $(actual-targets)
#indirect.call $(self.action-name) $(actual-targets)
# : $(self.actual-sources) : [ $(properties).raw ] ;
execute $(self.action-name) $(actual-targets)
: $(self.actual-sources) : [ $(properties).raw ] ;
# Since we set up the creating action here, we set up the action for
@@ -865,6 +867,19 @@ class action
{
return $(property-set) ;
}
# Execute the action rule on the given targets, sources, and properties.
# Since this does the final call to the engine action rule this takes
# engine level targets and raw properties. One could override this, for
# example, to set additional variables on hte target that might be
# difficult to determine just using toolset flags.
# Note, you must call this base rule when overriding as otherwise the
# actions will not execute and the engine will not run commands.
#
rule execute ( action-name targets + : sources * : properties * )
{
indirect.call $(action-name) $(targets) : $(sources) : $(properties) ;
}
}