Vladimir Prus wrote:
On 6/22/2015 2:41 PM, Peter Dimov wrote:
Vladimir Prus wrote:
Say, the 'link' property usually has no effect on architecture and address-model,
How could you know?
By examining all toolsets that support the 'link' property?
My point was that, in general, you can't know whether a property affects the address model. Maybe you can know that about "link" and other known properties, but that's not what the code does today - it doesn't eliminate known properties, it eliminates all unknown properties.
It is possible to solve, in general, but it requires either creating directory paths using a hash of property set (which is ugly), or storing a hash of property set is a separate data store.
When I look at project-cache.jam, I see this:
set "hardlinks
supported-<abi>ms-<address-model>32-<architecture>x86-<asynch-exceptions>off-<binary-format>pe-<cxxflags>-std=c++14-<debug-store>object-<debug-symbols>on-<deduced-address-model>32-<deduced-architecture>x86-
Maybe it's because it's reasonable to assume that if people adding options such as "-m32" to cxxflags know what they are doing?
You could say that. But what then would be your recommendation? How can I have a working setup, in which I can issue b2 toolset=gcc,gcc-cxx11,gcc-cxx14,clang,clang-cxx11,clang-cxx14,msvc-8.0,msvc-12.0 and have it properly detect that gcc by default doesn't support C++11, but does in -std=c++11 mode?