Subject: Re: [boost] PSA: Travis OS X bottleneck, <cxxstd> new Boost.Build feature
From: James E. King, III (jking_at_[hidden])
Date: 2017-10-26 17:44:30


On Thu, Oct 26, 2017 at 12:43 PM, Peter Dimov via Boost <
boost_at_[hidden]> wrote:

> Travis's OS X resources for open source projects seem to be insufficient,
> so OS X jobs are very slow and seem to be falling further and further
> behind. Therefore, library authors are encouraged to keep the OS X jobs to
> the minimum necessary. Spawning many OS X jobs takes hours (~25 minutes
> waiting time per job at a quick estimate).
>
> On a not entirely unrelated note, Rene Rivera has added a new feature
> <cxxstd> to Boost.Build that controls the C++ standard in use. So for
> instance, instead of the old
>
> b2 libs/mylib/test toolset=gcc cxxflags=-std=c++11
>
> one can now use
>
> b2 libs/mylib/test toolset=gcc cxxstd=11
>
> In addition to being more convenient, this also allows several invocations
> to be combined into one:
>
> b2 libs/mylib/test toolset=clang cxxstd=03,11,14,1z
>
> which can be leveraged to cut down on the number of jobs.
>
> An example of using cxxstd in .travis.yml can be seen here:
>
> https://github.com/boostorg/system/blob/develop/.travis.yml
>

In Travis if one updates gcc and clang as part of the update scripts, you
end up with "clang++" and "clang++-5.0" for example, where the first one is
the version that came with the distribution.
Is there a bjam directive to change the compiler name, for example it would
be nice if I could do:

toolset=gcc,clang compiler={g++,g++-7},{clang++,clang++-5.0}

Right now I muck with the user-config.jam file to force it one way or the
other.
Perhaps that's still the best way to do it?

Thanks,

Jim