|
Boost : |
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2019-07-24 17:21:15
>> So, the fact that !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are false on
>> MSVC is a problem, the tests won't run on MSVC.
>>
>> Yet Outcome works fine for the developer build, as evidenced by the
>> regression matrix. So this is a problem affecting this release build
>> ONLY.
>>
>> Thoughts?
>
> I've not used predef-require, but you can't compare versions in dotted
> notation in C++ preprocessor. Boost.Predef defines version numbers with
> BOOST_VERSION_NUMBER, so you would compare like this:
>
> Â BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0)
>
> Also, note that 6.0 is a pre-release version of gcc 6.x. The first
> release version is 6.1.
I vaguely remember that the documented approach, which is what you
suggest, doesn't work from Predef. What I have in there does work. GCCs
before 6 are excluded, that works fine.
> That said, given that the Boost.Build output above is from MSVC, I'm not
> sure why both !BOOST_COMP_GNUC and !BOOST_COMP_CLANG are "no".
It also would seem that Predef is broken on GCC 7.3 on Linux as well:
ned_at_KATE:/mnt/c/Users/ned/Downloads/boost_1_71_0_b1_rc1/boost_1_71_0$
./b2 libs/outcome/test
Performing configuration checks
- !BOOST_COMP_GNUC : no
- BOOST_COMP_GNUC >= 6.0 : no
- !BOOST_COMP_CLANG : no
- BOOST_COMP_CLANG >= 4.0 : no
- default address-model : 64-bit
- default architecture : x86
- Boost.Config Feature Check: cxx14_variable_templates : yes
- Boost.Config Feature Check: cxx14_constexpr : yes
- !BOOST_COMP_GNUC : no
- BOOST_COMP_GNUC >= 6.0 : no
- !BOOST_COMP_CLANG : no
- BOOST_COMP_CLANG >= 4.0 : no
- Boost.Config Feature Check: cxx14_variable_templates : yes
- Boost.Config Feature Check: cxx14_constexpr : yes
...found 1 target...
Just to make sure that the BOOST_VERSION_NUMBER thing hadn't changed:
ned_at_KATE:/mnt/c/Users/ned/Downloads/boost_1_71_0_b1_rc1/boost_1_71_0$
./b2 libs/outcome/test --reconfigure
Performing configuration checks
- !BOOST_COMP_GNUC : no
- BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0) : no
- !BOOST_COMP_CLANG : no
- BOOST_COMP_CLANG >= BOOST_VERSION_NUMBER(4, 0, 0) : no
- default address-model : 64-bit
- default architecture : x86
- Boost.Config Feature Check: cxx14_variable_templates : yes
- Boost.Config Feature Check: cxx14_constexpr : yes
- !BOOST_COMP_GNUC : no
- BOOST_COMP_GNUC >= BOOST_VERSION_NUMBER(6, 0, 0) : no
- !BOOST_COMP_CLANG : no
- BOOST_COMP_CLANG >= BOOST_VERSION_NUMBER(4, 0, 0) : no
- Boost.Config Feature Check: cxx14_variable_templates : yes
- Boost.Config Feature Check: cxx14_constexpr : yes
...found 1 target...
So I'd say b2 predef has become broken recently. At least in the release
distro, as the regression matrix shows Outcome building:
https://www.boost.org/development/tests/develop/developer/outcome.html
Niall
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk