Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2008-04-05 09:27:43


On Saturday 05 April 2008 11:36:26 Peter Schueller wrote:
> Hello!
>
> I am using two standard generators to create a client and a server
> version of gsoap code. I have to distinguish between server and client
> and so I use a property as requirement. If I forget to add this
> property to the Jamfile, both of the generators will be pruned and I
> will only get the message "target could not be constructed".
>
> The generators are registered the following way:
>
> 12 generators.register-standard gsoap.soapcpp2 :
> 13 WSDL_H : H(%SoapStub) H(%SoapH) CPP(%SoapC) CPP(%SoapClient) :
> 14 <gsoap.usage>client ;
> 15
> 16 generators.register-standard gsoap.soapcpp2 :
> 17 WSDL_H : H(%SoapStub) H(%SoapH) CPP(%SoapC) CPP(%SoapServer) :
> 18 <gsoap.usage>server ;
>
> Is it possible to do something like
> >generators.register-standard gsoap.error.usage : WSDL_H : CPP :
> <gsoap.usage>"" ;
> which only applies the rule gsoap.error.usage if the property
> gsoap.usage is not given and a CPP needs to be created from a WSDL_H?
>
> If I do as above I get a generator ambiguity for targets which have
> the property set correctly to either server or client.

You can use the generators.override rule to specify that whenever
a "real" generator and the "error" generator appear to be viable, the "error"
generator loses. See the definition (and comment) in generators.jam.

I suppose you plan to emit an error message from your generator's Jam code?

- Volodya


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