From b95ecfa01f9317c10ec1c292ec8126d100e8cea5 Mon Sep 17 00:00:00 2001 From: Dave Abrahams Date: Sun, 10 Feb 2002 20:52:13 +0000 Subject: [PATCH] Bug fix + associated test [SVN r12779] --- src/build/build-request.jam | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/build/build-request.jam b/src/build/build-request.jam index 924b0819a..ec9907e4a 100644 --- a/src/build/build-request.jam +++ b/src/build/build-request.jam @@ -57,7 +57,7 @@ local rule x-product-aux ( elements + : feature-space ) local result ; local p = [ regex.split $(elements[1]) / ] ; local f = [ set.difference $(p:G) [ $(feature-space).free-features ] ] ; - + local seen ; # No conflict with things used at a higher level? if ! [ set.intersection $(f) : $(x-product-used) ] { @@ -81,6 +81,8 @@ local rule x-product-aux ( elements + : feature-space ) { elements = ; } + + seen = $(x-product-seen) ; } if $(elements[2]) @@ -90,7 +92,7 @@ local rule x-product-aux ( elements + : feature-space ) # Note that we've seen these features so that higher levels will # recurse again without them set. - x-product-seen += $(f) ; + x-product-seen += $(f) $(seen) ; return $(result) ; } @@ -129,6 +131,14 @@ local rule __test__ ( ) : build-request.expand gcc-3.0.1/stlport msvc/stlport msvc debug : $(test-space) ; + assert.result + gcc/3.0.1/stlport/debug + msvc/debug + debug/msvc/stlport + + : build-request.expand gcc-3.0.1/stlport msvc debug msvc/stlport + : $(test-space) ; + assert.result gcc/3.0.1/stlport/debug/off gcc/3.0.1/stlport/release/off