Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-05-21 02:17:47


Dave,
if you recall, some time ago you've changed generators matching so that
required properties are counted when determining match rank. I had
some concerns then, but since my project worked, I could not clearly
express them.

Seems that Andre Hentz produced such an example:

generators.register-standard rc.resource-compile : RC : OBJ ;
....
exe a : a.cpp rc.rc ;

With this arrangement, the match rank for CPP->OBJ generators is 1, because
they all have <toolset> as required property. The match rank for rc generator
is 0. So, it's not even considered.

This example immediately reminded me why required properties were not counted
in the first place: I though it's better design if required properties do not
affect matching, and it case of ambiguities you should use optional
properties. IOW, optional properties should be the only way to control
generator preferences.

For M3, I've restored the previous behaviour, so that existing code does not
need any workarounds.

In general, we might consider alternative approaches for making newly added
custom_generator.py test to work, but so far using old matching rules appears
to be the simplest one to me. Opinions?

- 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