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:
@@ -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) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user