Boost logo

Boost-Build :

From: Jurko Gospodnetić (jurko.gospodnetic_at_[hidden])
Date: 2008-07-22 20:55:46


   Hi Steven.

>>> I have msvc-9.0express installed. If I just follow the instructions
>>> in the getting started guide I get this:
>>>
>>> C:\boost\trunk\status>bjam toolset=msvc-9.0
>>> C:/boost/trunk/tools/build/v2/tools\msvc.jam:320: in configure-really
>>
>> Does a better error message will solve this problem?
>
> It would have to be something like:
> If the user did not provide a command and the requested version
> was not auto-detected and the compiler is not in the PATH
> issue a warning including the known versions.
>
> warning: could not initialize toolset msvc-9.0
> warning: found msvc-8.0express msvc-9.0express
>
> I suppose that would be acceptable.

   I removed the problem in my sandbox but it seems that the msvc
toolset has been written so that it attempts to use the 'cl.exe'
compiler command directly without any setup script in case it can not
recognize the toolset version and simply expect the external environment
to be already correctly set up.

   My guess is that this is wrong. Why would anyone want that? If we do
it that way then there is no guarantee that we are running tools
belonging to the correct version.

   Would it not be better to report this as an error or possibly use
such plain tool executables without a setup script but only if no
version has been specified or auto-detected?

   I also do not think we should be using the path version in case we
have not already auto-detected the specified version since we have no
way to make sure that the requested version actually matches the
compiler used, but there is already a TODO note in the code regarding this.

>>> a) I don't understand why it is necessary to have separate msvc-9.0 and
>>> msvc-9.0express toolsets. This is confusing to users, IMO. (Until very
>>> recently I assumed that I needed to have the compiler in my PATH)
>>
>> User can install both compilers. In that case she need some way to
>> distinguish between them.
>
> If only one is installed shouldn't msvc-9.0 pick up that one?
> If I just say toolset=msvc it works.

   When you say toolset=msvc then you tell Boost Build that you want the
default version of the msvc toolset. When you say msvc-9.0 you ask for
the exact MSVC 9.0 version and not MSVC 9.0 Express Edition and vice
versa with msvc-9.0express. As far as Boost Build is concerned those are
two versions of the same toolset and there is no more similarity between
them than there is between versions 6.0 & 9.0, so using msvc-9.0express
when user asked for the msvc-9.0 version would be like using msvc-9.0
when user asked for msvc-6.0.

   Best regards,
     Jurko Gospodnetić


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