diff --git a/v2/build/feature.jam b/v2/build/feature.jam index 83f266f47..a2196bdba 100644 --- a/v2/build/feature.jam +++ b/v2/build/feature.jam @@ -342,21 +342,6 @@ local rule expand-subfeatures-aux ( result += $(subvalue:G=$(f)-$(subfeature)) ; } } - - # Add all the default feature values for non-optional subfeatures. - local ungristed-feature = [ utility.ungrist $(feature) ] ; - for local s in $($(feature).subfeatures) - { - local full-name = <$(ungristed-feature)-$(s)> ; - if ! optional in $($(full-name).attributes) - && [ is-subfeature-of $(result[1]) $(full-name) ] - { - if ! $(full-name) in $(result:G) - { - result += $(full-name)$($(full-name).default) ; - } - } - } return $(result) ; } @@ -1031,7 +1016,7 @@ local rule __test__ ( ) extend-feature toolset : msvc metrowerks ; subfeature toolset gcc : version : 2.95.2 2.95.3 2.95.4 - 3.0 3.0.1 3.0.2 : optional ; + 3.0 3.0.1 3.0.2 ; assert.result : select-subfeatures gcc @@ -1053,19 +1038,15 @@ local rule __test__ ( ) assert.result gcc 3.0.1 : expand-subfeatures gcc-3.0.1 ; - + + assert.result gcc 3.0.1 + : expand gcc 3.0.1 ; + assert.result foo=x-y : expand-subfeatures foo=x-y ; assert.result gcc 3.0.1 : expand-subfeatures gcc-3.0.1 ; - - feature dummy : dummy1 dummy2 ; - subfeature dummy : subdummy : x y z : optional ; - - feature fu : fu1 fu2 : optional ; - subfeature fu : subfu : x y z : optional ; - subfeature fu : subfu2 : q r s ; assert.result a c e : get-values : a b c d e ; @@ -1074,10 +1055,6 @@ local rule __test__ ( ) debug _DEBUG on : expand gcc-3.0.1 debug on ; - - assert.result fu1 q - : expand-subfeatures fu1 - ; assert.result debug _DEBUG on : expand debug on @@ -1090,17 +1067,25 @@ local rule __test__ ( ) assert.result dynamic on : defaults ; + + feature dummy : dummy1 dummy2 ; + subfeature dummy : subdummy : x y z : optional ; + feature fu : fu1 fu2 : optional ; + subfeature fu : subfu : x y z : optional ; + subfeature fu : subfu2 : q r s ; + assert.result static foobar on gcc:FOO - gcc debug native dummy1 + gcc debug native dummy1 2.95.2 : add-defaults static foobar on gcc:FOO ; assert.result static foobar on gcc:FOO - fu1 gcc debug native dummy1 q - + fu1 gcc debug native dummy1 q + 2.95.2 + : add-defaults static foobar on gcc:FOO fu1 ;