|
Boost Testing : |
From: Aleksey Gurtovoy (agurtovoy_at_[hidden])
Date: 2005-01-07 19:16:14
Stephen W. Carson writes:
> Aleksey Gurtovoy wrote:
>> Hmm, this one is strange (unless you were trying to build through
>> Bjam -- in that case, please see below). Some minor issues aside,
>> 1.32 is known to play friendly with CW 9.3 on OSX (it's one of our
>> production configurations here at work).
>>
>>
> Our contact at MetroWerks said the same thing, that boost should
> be fine on CW 9.3 on OSX. Perhaps our Mac programmer either meant
> that our code that uses boost was issuing errors when she switched
> to 9.3 or maybe she did try to build boost and we just need to set
> the CodeWarrior boost project up differently, (we've found jam
> really confusing on Windows and Mac and no one here has ended up
> really confident about how to do boost builds). I'll look into
> that.
OK.
>
>> Yep, this is probably the best option at the moment. As a matter of
>> fact, with the latest "regression.py" you don't need to specify
>> "--bjam-toolset" explicitly: if the provided toolset is not in the
>> list of the toolsets supported by build.sh/.bat scripts, the
>> platform default will be used automatically.
>>
>>
> I gave this a try just to see this much work and, indeed, the script
> realized that cw wasn't supported for building jam and built it with
> darwin instead.
> Somewhat to my surprise, the regressions went ahead and ran using
> gcc I believe even though I specified "--toolset=cw". I would have
> expected the script to stop at that point and report that there was a
> problem with the cw toolset or something.
Rightly. Fixed in the CVS;
www.meta-comm.com/engineering/boost/regression.tar.gz updated accordingly.
>>>>
>>>> The other option would be hacking at build.sh and build.jam in
>>>> boost-root/tools/build/jam_src to add the support for CW in
>>>> MacOS.
>>>>
>>>> But it doesn't end there. Even though the Getting Started docs
>>>> say that CW is supported, it currently only supports it on
>>>> Windows.
>>>
>>>
>>
>> To elaborate a little more: the main issue here is the difference
>> in command line options for 'mwcc' tool on OS X and Windows. The
>> toolset file ($BOOST_ROOT/tools/build/v1/cw-tools.jam) needs to be
>> modified to somehow accomodate for the differences.
>>
>>
>
> This is all new to me, so you're going to have to walk me
> through anything you want me to figure out about the build tools.
>
> For starters, any thoughts on how to go about figuring out what
> the mwcc command line options should be under OS X
Sure -- let's just run the thing, see what the compiler is
complaining about, and take care of the issues one by one.
> (and might they even be the same as for mwcc under Windows?)
Most of the options are actually the same, so the current toolset is
a good start.
>>
>> IOW, make a wrapper toolset file which includes the version and
>> platform information in its name and place it in the same directory
>> with "regression.py". Something like this:
>>
>> [cw-9_3-darwin-tools.jam]
>>
>> {
>> local CW_VERSION = 9.0 ;
>> extends-toolset cw ;
>> }
>>
>> The convention is needed to be able to markup "expected" failures for
>> the particular compiler version/platform.
>>
> I see the following is there already:
>
> $BOOST_ROOT/tools/build/v1/cw-9_3-tools.jam
>
> But I suppose I need to make one specific to darwin, right?
Right. Actually, given that you'll need to modify the guts of the
default toolset, it'd make the whole thing easier for you if instead
of creating the aforementioned "wrapper" toolset you just copy
'$BOOST_ROOT/tools/build/v1/cw-tools.jam' to the 'regression.py's
location and rename it to 'cw-9_3-darwin-tools.jam'. We'll merge the
modifications back when everything is up & running.
> (And it doesn't go down in this v1 folder? It goes in the folder
> that has regression.py?)
Yep. Obviously, things will work just as well if you put it inside
'v1' folder, but it's just more pain.
> Also why is CW_VERSION set to 9.0. Isn't the CodeWarrior version
> 9.3?
If you look inside the toolset file, you'll see that CW_VERSION is
used for two things:
1) To locate the compiler's installation directory/registry settings;
2) To switch on when forming the corresponding command line options.
For both of these a "round" major verion is what is needed.
>
> So once I get this "cw-9_3-darwin-tools.jam" file set up, I should
> now run the python script with "--toolset=cw-9_3-darwin", right?
Yep.
-- Aleksey Gurtovoy MetaCommunications Engineering