summaryrefslogtreecommitdiff
path: root/tools/build/src/build/virtual-target.jam
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/src/build/virtual-target.jam')
-rw-r--r--tools/build/src/build/virtual-target.jam17
1 files changed, 16 insertions, 1 deletions
diff --git a/tools/build/src/build/virtual-target.jam b/tools/build/src/build/virtual-target.jam
index 264616db61..2d139bd7f8 100644
--- a/tools/build/src/build/virtual-target.jam
+++ b/tools/build/src/build/virtual-target.jam
@@ -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) ;
+ }
}