From: David Abrahams (gclbb-jamboost_at_[hidden])
Date: 2003-05-21 07:38:19
Vladimir Prus <ghost_at_[hidden]> writes:
> 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.
I think you did the right thing.
> 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?
"If it ain't broke, don't fix it" ;-)
-- Dave Abrahams Boost Consulting www.boost-consulting.com
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