|
Boost : |
Subject: [boost] [config] 'requres' doesn't take differing -std into account
From: Peter Dimov (lists_at_[hidden])
Date: 2015-06-21 10:19:32
I have, in my user-config.jam,
using gcc ;
feature.subfeature toolset gcc : std : cxx0x cxx11 cxx1y cxx14 : optional
composite propagated ;
feature.compose <toolset-gcc:std>cxx0x : <cxxflags>-std=c++0x ;
feature.compose <toolset-gcc:std>cxx11 : <cxxflags>-std=c++11 ;
feature.compose <toolset-gcc:std>cxx1y : <cxxflags>-std=c++1y ;
feature.compose <toolset-gcc:std>cxx14 : <cxxflags>-std=c++14 ;
using clang : : : <cxxflags>-Wno-variadic-macros
<cxxflags>-Wno-c99-extensions ;
feature.subfeature toolset clang : std : cxx0x cxx11 cxx1y cxx14 : optional
composite propagated ;
feature.compose <toolset-clang:std>cxx0x : <cxxflags>-std=c++0x ;
feature.compose <toolset-clang:std>cxx11 : <cxxflags>-std=c++11 ;
feature.compose <toolset-clang:std>cxx1y : <cxxflags>-std=c++1y ;
feature.compose <toolset-clang:std>cxx14 : <cxxflags>-std=c++14 ;
This allows me to use toolset=clang (without -std) and toolset=clang-cxx11
(with -std=c++11).
The 'requires' rule however caches the results of the configuration check
when I run with toolset=clang, and then when I rerun with
toolset=clang-cxx11, it uses the cached values, which is wrong.
I use something like
run test.cpp : : : [ requires cxx11_variadic_templates
cxx11_template_aliases cxx11_hdr_type_traits cxx11_hdr_tuple ] ;
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk