--- trunk/tools/build/v2/build/targets.jam (revision 45072) +++ trunk/tools/build/v2/build/targets.jam (revision 45245) @@ -1170,5 +1170,5 @@ ECHO [ targets.indent ] "Building target '$(fn)'" ; targets.increase-indent ; - ECHO [ targets.indent ] "Build request: " [ $(property-set).raw ] ; + ECHO [ targets.indent ] "Build request: " $(property-set) [ $(property-set).raw ] ; local cf = [ build-system.command-line-free-features ] ; ECHO [ targets.indent ] "Command line free features: " [ $(cf).raw ] ; @@ -1275,5 +1275,14 @@ # case we don't want any diagnostic. In the former case, we need # diagnostics. FIXME - self.generated.$(property-set) = $(rproperties) ; + + # If this target fails to build, add no to properties + # to cause any parent target to fail to build. Except that it + # - does not work now, since we check for no only in + # common properties, but not in properties that came from + # dependencies + # - it's not clear if that's a good idea anyway. The alias + # target, for example, should not fail to build if a dependency + # fails. + self.generated.$(property-set) = [ property-set.create no ] ; } } @@ -1283,4 +1292,7 @@ { ECHO [ targets.indent ] "Already built" ; + local ur = $(self.generated.$(property-set)) ; + ur = $(ur[0]) ; + ECHO [ targets.indent ] " Usage requirements " [ $(ur).raw ] ; } }