
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