import common ; import "class" : new ; rule generate-example ( project name : property-set : sources * ) { local result ; for local s in $(sources) { #local ea = [ $(s).action ] ; #local ep = [ $(ea).properties ] ; # Create a new action, that takes the source target # and runs 'common.copy' comamnd on it. local a = [ new non-scanning-action $(s) : common.copy : $(property-set) ] ; local source-name = [ $(s).name ] ; # Create the target to represent the result of the action. # The target has the name that was specified in Jamfile # and passed here via the 'name' parameter, # and the same type and project as the source. result += [ new file-target $(name) : [ $(s).type ] : $(project) : $(a) ] ; } return $(result) ; } generate a2 : a.cpp : @generate-example ;