Boost logo

Boost :

From: Robert Ramey (ramey_at_[hidden])
Date: 2004-08-31 11:26:28


I would like to see a little more order/organization in the creation of new
toolsets.

For example in the current CVS we have for Codewarrior

Cw
Cw-9.2
Cwpro-9.2
Cw-8.3
Cwpro-8.3

This is only an example. The same problem is occurring in gcc and mingw

It creates a couple of problems

a) we're not all testing with the same Jamfile. This leads to a lot of
confusion.
b) If I have a jam file which needs special treatment for a particular
compiler, I have to included a line for each toolset - and that can change
in the future creating another obscure bug to track down.
c) The documentation on the "getting started" page is way out of sync with
the toolsets in existences.

A somewhat related problem - or maybe the cause of the above is the fact
that the Jamfile doesn't have access to the compiler version. I'm not sure
what to do about this. But, here's a suggestion for consideration to start
the discussion.

Right now we pass a variable to bjam with the toolset name. e.g

bjam -sTOOLS=cwpro-9.2

How about the idea

Bjam -sTOOLS=cw -sCOMPILER_VERSION=9.2 -sSTD_LIBRARY=stlport

The "base" toolset would fill in variables COMPILER_VERSION and
STL_LIBRARY_VERSION with defaults - probably the currently shipping version.
Or a "base" toolset could require one or the other of the above switches.
Also the "base" toolset could include a "config_check" target what would
double check that compiler version invoked is the same as the one that is
specified by the switch. This would catch the case where one has one
compiler in his path and tries to build for another.

This would have the following advantages:

a) a smaller number of toolsets
b) a greater likelihood that we're all testing the same thing
c) documentation more likely to be insync with the actual toolsets available

The recently re-organized stlport.jam "add-in" with all stlport stuff
factored out so it can be "added-in" to any library is a good idea.
Unfortunately it has a bug but that's fixable. This would allow us to
specify usage of STLPort (or any other library) without creating a new
toolset.

I guess we sometimes use:

bjam "-sTOOLS=cwpro-9.2 msvc"

to handle multiple compilers in one shot. If its important to keep this
feature then we could use

Bjam "-sTOOLS=cw msvc" "-sCOMPILER_VERSION=cw-9.2 msvc-6.0"
-sSTD_LIBRARY=cw-stlport

or something similar.

Just a small suggestion to keep the pot boiling.

Robert Ramey


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk