From: Jurko Gospodnetiæ (jurko.gospodnetic_at_[hidden])
Date: 2008-01-04 13:05:14
> I believe that when an alias alternative matching the current
> feature-set can not be found that Boost Build should not display a
> warning to that affect unless someone actually wants to use (build/use
> as source/whatever...) that alias with that feature set.
After looking at this problem a bit more, I am no longer certain that
there is an easy fix for this.
Making all aliases explicit by default does not seem to be ok since
we might actually want an alias built implicitly (e.g. having some
otherwise explicitly built targets be build implicitly but with some
I considered making them explicit only if they have no sources
defined. That solution starts getting complicated when you consider that
an alias might have dependencies with sources and/or may have multiple
alternatives, some with sources and some without.
Another use case for such a rule would be prebuilt libraries which
could be made explicit, but that case also becomes difficult to solve in
general (again, think multiple alternatives, some prebuilt and some not).
In the end I guess having to mark a target as explicit in these cases
does not seem like such a bad solution. :-)))
I have some ideas about allowing a specific alternative to be
implicit or explicit, effectively allowing specific alternatives not to
be included in the search when a target is explicitly requested but I
have not given this enough thought to know how it would work out. For
now I added it to my 'to do' list. :-)
> I'm attaching a bit refactored alias rule tests (split into two files)
> and an added alias_no_warning.py test for this catching this warning.
In light of the reasoning above, neither this patch nor the one for
test_all.py (also posted in this thread) should be applied and I'll post
a different patch containing all the extra regular 'code cleanup' they
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