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/92522691601533a2afdec9bdecb97674...
https://github.com/boostorg/filesystem/blob/92522691601533a2afdec9bdecb97674...
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.