Boost logo

Boost :

From: Andrey Semashev (andrey.semashev_at_[hidden])
Date: 2020-05-18 10:09:49


On 2020-05-18 11:43, Alexander Grund via Boost wrote:
>
>>> As another note on that: I have a test to be run on windows only by
>>> using:
>>> <build>no <target-os>windows:<build>yes
>>>
>>> This now also breaks BJam as it sees a <build>no by the C++11
>>> requirements and a <build>yes by the above :(
>>> No idea how to solve that.
>>
>> You could write a local rule that determines when to build the test.
>> You can see an example here:
>>
>> https://github.com/boostorg/filesystem/blob/92522691601533a2afdec9bdecb976741d614fdc/test/Jamfile.v2#L29
>>
>> https://github.com/boostorg/filesystem/blob/92522691601533a2afdec9bdecb976741d614fdc/test/Jamfile.v2#L81
>>
>
> This will get ugly here. I have 1 test which must only be build on
> Windows. ALL tests must only be build in C++11.
>
> Hence I would need to decorate _every_ test with the C++11 requirement
> but that 1 test where I need to define a function that checks for the
> C++11 requirement _and_ if it is on Windows.

The requirements specified for the project are applied to all targets in
the Jamfile. So you can apply the C++11 requirement to the project and
the Windows requirement to that one test.

> I guess this could be solved if B2 allows negation. So I can say:
> `<target-os>not windows:<build>no `.
> Does this exist?

I'm not aware of such; I don't think it is supported other than through
the <conditional> rule.


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