diff --git a/src/build/targets.jam b/src/build/targets.jam index bf67e0acd..f2dd0d986 100644 --- a/src/build/targets.jam +++ b/src/build/targets.jam @@ -1153,6 +1153,7 @@ class basic-target : abstract-target result = $(result[2-]) ; local s = [ create-subvariant + $(result) : [ virtual-target.recent-targets ] : $(property-set) : $(source-targets) : $(rproperties) : $(usage-requirements) ] ; @@ -1234,19 +1235,22 @@ class basic-target : abstract-target } # Creates a new subvariant-dg instances for 'targets' - local rule create-subvariant ( targets * : build-request : sources * : + # - 'root-targets' the virtual targets will be returned to dependents + # - 'all-targets' all virtual + # targets created while building this main target + # - 'build-request' is property-set instance with requested build properties + local rule create-subvariant ( root-targets * + : all-targets * : build-request : sources * : rproperties : usage-requirements ) { - for local e in $(targets) + for local e in $(root-targets) { $(e).root true ; } # Process all vtargets that will be created if this main target # is created. - local all-targets = - [ sequence.transform virtual-target.traverse : $(targets) ] ; local s = [ new subvariant $(__name__) : $(build-request) : $(sources) : $(rproperties) : $(usage-requirements) : $(all-targets) ] ; for local v in $(all-targets)