Boost logo

Boost :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2008-03-19 15:13:48


Robert Ramey wrote:

> Vladimir Prus wrote:
>> Robert Ramey wrote:
>> Your Jamfile had two things:
>>
>> requirements <dependency>../../config/test//BOOST_NO_STD_LOCALE
>> usage-requirements
>> <dependency>../../config/test//BOOST_NO_STD_LOCALE
>>
>> The first if just enough, as far as I can see. Why did you add the
>> second? Do I miss any case where the first one is not sufficient?
>
> Well, I concede that bjam file syntax is inpenetrable to me. I don't
> remember how I ended up with both of these. I suppose that I
> had concluded that "requirements" was to list a requirement to build the
> library
> while "usage-requirements" was to list a requirement to use the library.
> This
> could occur because the standard library is required to work for the library
> to build. Also, since std io headers are used when templates are
> instantiated, I added the dependency the "usage requiremement"
> But of course now I don't remember what I was thinking - if anything.
>
> Note that including this did produce the effect that I desired. For
> example,
> when building the library for mingw which doesn't support wide char i/o
> the library build and tests for wide char io are automatically skipped as
> was my intention. Presumably they will be skipped on any platform
> which doesn't support wide char i/o without anyone having to make
> any special provision such as markup etc.
>
> So, now that I've described my intention as far as "dependency" is
> concerned,
> perhaps you might suggest how it might be better expressed.

I think that leaving just the 'requirements' block above
should have the desired effect -- and that's why I did.

>
> While you're at it, you might explain something else. I included "test.jam"
> so that my other test directories (performance tests, no-rtti, not checked
> in)
> could share the bjam code. I was supprised to find that this file had to be
> named "test.jam" rather than "test.v2" as I would have expected.

The modules that you import should have .jam extention, whereas Jamfiles
have more flexible rules, and for C++ Boost, Jamfile.v2 is allowed,
which was used to avoid conflicts with Boost.Build V1. The ".v2" extension
is not special in any way -- it's C++ Boost setup that tells that Jamfile.v2
is OK.

- Volodya


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