Boost logo

Boost-Build :

From: Andrei Melnikov (andy.melnikov_at_[hidden])
Date: 2006-07-20 14:09:30


On 20/07/06, Reece Dunn <msclrhd_at_[hidden]> wrote:
> Andrei Melnikov wrote:
> > It didn't work because msvc was my default toolset. When I specify wix
> > on the command line, it works.
>
> Yeah, sorry. I forgot about that!
>
> > Is this a bug? msvc toolset doesn't have generators for msi.
>
> The problem is that wix is defined as a separate toolset as the logic to
> build the MSI files is located in WiX. If I was to place the msi generators
> in msvc (and all the other supported Windows toolsets!) I would be implying
> that msi<->wix, which I don't want to do! WiX is a separate toolset, unlike
> rc, asm, midl and other source file types/tools.

idl<->tlb link isn't better. We also have CORBA and XPCOM idl files.
The situation is the same everywhere.
>
> I could get partially around this by having wixmsi, but that looks ugly. We
> may end up doing that if you consider other MSI generators like Install Shield
> that have their own source files.
>
> However, we would still need to import the generators into the host toolset.
>
> There is also a problem (I believe) in mixing codetrees that are dependant on
> C++ and Fortran as these are done as separate toolsets.

The problem is inside $(condition) we use.

I "fixed" the problem with wix by removing $(condition) from the
wix.init rule. This will break again if I would have wix-2.0 and
wix-3.0 toolsets configured at the same time.

Now we rely on having a single global <toolset> value. <toolset> and
<toolset-version> should be set individually for each target depending
on current toolsets and target's type.
>
> Ideally, we want a notion of language groups, e.g. all this information relates
> to C++ toolsets (<language>cpp) or MSI (<language>msi) or
> Fortran (<language>fortran). That way, we could associate toolsets with
> a language group:
>
> <language>cpp --> <toolset>msvc
> <language>cpp --> <toolset>gcc
> <language>msi --> <toolset>wix
> <language>msi --> <toolset>installshield
>
We already have target types. I think a separate notion isn't
necessary. We just need to get rid of the single global <toolset>
value we have now. target.type == CPP isn't worse than <language>cpp


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