Boost logo

Boost-Build :

From: Phillip Seaver (phil_at_[hidden])
Date: 2007-07-26 19:28:20


Jeffrey Holle wrote:
> I am using Boost.Build V2 (Milestone 11) Boost.Jam 03.1.15.
>
> I've discovered a problem when creating an specialized variant.
>
> I created a variant called wx_release that damps done the optimization
> level to avoid the type-puned casting issues that wxWidgets has.
>
> Then I discovered that using "<variant>debug:include" no longer worked.
>
> The work around was to create a wx_debug variant too and use it instead
> of debug.
>
> If my wx_release variant wasn't defined, the debug variant worked as
> expected.
>

I created a <variant-base> property for this purpose -- that way I can
say "<variant-base>release:<define>NDEBUG" and it'll work for both
<variant>release and <variant>profile (which is based on release). See
the attached patch.

HTH,

Phillip

Index: build/v2/tools/builtin.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/builtin.jam,v
retrieving revision 1.202
diff -u -r1.202 builtin.jam
--- build/v2/tools/builtin.jam 3 Apr 2007 17:10:53 -0000 1.202
+++ build/v2/tools/builtin.jam 26 Jul 2007 23:24:56 -0000
@@ -254,6 +254,7 @@
 feature user-interface : console gui wince native auto ;
 
 feature variant : : implicit composite propagated symmetric ;
+feature variant-base ;
 
 # Declares a new variant.
 # First determines explicit properties for this variant, by
@@ -302,10 +303,10 @@
     # Add explicitly specified properties for parents
     for local p in $(parents)
     {
- # TODO: the check may be sticter
+ # TODO: the check may be stricter
         if ! [ feature.is-implicit-value $(p) ]
         {
- error "Invalid base varaint" $(p) ;
+ error "Invalid base variant" $(p) ;
         }
         
         inherited += $(.explicit-properties.$(p)) ;
@@ -313,6 +314,12 @@
     property.validate $(explicit-properties) ;
     explicit-properties = [ property.refine $(inherited) : $(explicit-properties) ] ;
     
+ if ! $(parents)
+ {
+ feature.extend variant-base : $(name) ;
+ explicit-properties += <variant-base>$(name) ;
+ }
+
     # Record explicitly specified properties for this variant
     # We do this after inheriting parents' properties, so that
     # they affect other variants, derived from this one.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk