From 7a4f4d6be2101fbacf5a73e65543412a2ee9fe3f Mon Sep 17 00:00:00 2001 From: Vladimir Prus Date: Thu, 20 Nov 2003 13:01:58 +0000 Subject: [PATCH] Add feature. Patch from Pedro Ferreira. [SVN r20878] --- v2/build/virtual-target.jam | 34 ++++++++++++++++++++++++---------- v2/tools/builtin.jam | 1 + 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/v2/build/virtual-target.jam b/v2/build/virtual-target.jam index 1824b1b50..afc7cb6df 100644 --- a/v2/build/virtual-target.jam +++ b/v2/build/virtual-target.jam @@ -600,6 +600,26 @@ class action } } + # Helper for 'actualize-sources'. + # For each passed source, actualizes it with the appropriate scanner. + # Returns the actualized virtual targets. + rule actualize-source-type ( sources * ) + { + local result = ; + for local i in $(sources) + { + local scanner ; + if [ $(i).type ] + { + scanner = + [ type.get-scanner [ $(i).type ] : $(properties) ] ; + } + result += [ $(i).actualize $(scanner) ] ; + } + + return $(result) ; + } + # Creates actual jam targets for sources. Initialized two member # variables:. # 'self.actual-sources' -- sources which are passed to updating action @@ -610,16 +630,10 @@ class action # if caller wants it. rule actualize-sources ( sources * ) { - for local i in $(sources) - { - local scanner ; - if [ $(i).type ] - { - scanner = - [ type.get-scanner [ $(i).type ] : $(properties) ] ; - } - self.actual-sources += [ $(i).actualize $(scanner) ] ; - } + local dependencies = [ $(self.properties).get ] ; + + self.dependency-only-sources += [ actualize-source-type $(dependencies) ] ; + self.actual-sources += [ actualize-source-type $(sources) ] ; } rule path ( ) diff --git a/v2/tools/builtin.jam b/v2/tools/builtin.jam index 96f44da97..69b3f54c6 100644 --- a/v2/tools/builtin.jam +++ b/v2/tools/builtin.jam @@ -81,6 +81,7 @@ feature def-file : : free dependency ; # of the library. feature allow : : free ; +feature dependency : : free dependency ; # Windows-specific features