|
Boost-Build : |
From: Vladimir Prus (ghost_at_[hidden])
Date: 2007-10-24 16:01:23
On Wednesday 24 October 2007 18:35:56 Jurko GospodnetiÄ wrote:
> Hi.
>
> Registering a second unrelated type for the same extension should be
> but is currently not acceptable. That should cause an error only if
> boost build does not, for some reason, know which type to choose but
> that is not always the case (see below for an example).
>
> Without this completely separate jam modules may cause conflicts when
> used in the same project if they use source files of different types
> with the same extension.
>
> We have several .jam modules modeling toolsets for different external
> tools we automate using boost.build and some of them run into this
> problem. E.g. internal LIB type is registered for the .lib extension but
> one of the tools uses the same extension for its own libraries. These
> libraries are built from their own sources and have nothing in common
> with C/C++ libraries or their sources and so should cause no confusion.
>
> We currently quick-fix for this by making sure only one type is
> registered for a single extension and making all other types derived
> from this one but this is not a good long term solution as it forces one
> toolset to know about others used in the same project.
>
> Should I add a TRAC item for this? Any chance someone more
> knowledgable could take a look at this?
Just to clarify -- there's are two mapping here. One is suffix -> type,
used when we need to decide what's the type of the source file, and
another is type->suffix, used to decide what's the suffix to use
on generated targets. The first mapping, naturally, does not allow
duplicate suffixes, but the second one does.
It's possible to first declare a type with no suffixes, and then
use type.set-generated-target-suffix to specify generated suffix
explicitly.
Will it help in your case?
- 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