Boost logo

Boost-Build :

Subject: Re: [Boost-build] Boost build failed if custom toolset path is not available
From: Vladimir Prus (vladimir.prus_at_[hidden])
Date: 2016-02-25 13:55:09

On 25-Feb-16 7:47 AM, Edward Diener wrote:
>> That's not sufficient. Boost.Build is specifically
>> designed to allow building with multiple toolsets
>> in the same invocation.
> That does not change my argument, even if building with multiple toolsets in the same invocation. Whatever those
> multiple toolsets are my argument is that their "using xxx" should be delayed until Boost build determines that the
> "xxx" is actually being used.

The issue is that it's not always possible to determine that xxx is being used without first doing some initialization.
Consider this, which is already supported:

        using gcc : : /opt/gcc4/bin/g++ ;
        using gcc : : /opt/gcc5/bin/g++ ;

Given that, you can do:

        b2 toolset=gcc-4.8

and the way it works is that we first ran g++ to determine its version, and then you can specify the
version to use. This approach has some benefits over asking the user to explicitly give the version,
since the manually-specified version can easily become out-of-date.

Another use case, that we don't currently don't support, is selecting toolset based on other properties.
For example, if one has:

        using gcc : : /opt/gcc-for-arm/bin/g++ ;
        using gcc : : /opt/gcc-for-mips/bin/g++ ;

then it would be great to be able to do

        b2 architecture=arm

and have the first toolset invoked. Again, this requires that we do some initialization up-front,
as otherwise we'd have no idea what architecture(s) each gcc handles.

Is there a way to make the above use cases work while also addressing your suggestions?

Vladimir Prus

Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at