Boost logo

Boost-Build :

Subject: Re: [Boost-build] Building Boost with multiple python versions
From: Edward Diener (eldiener_at_[hidden])
Date: 2017-02-15 01:46:54


On 2/14/2017 7:51 PM, Stefan Seefeld via Boost-build wrote:
> On 14.02.2017 19:20, Edward Diener via Boost-build wrote:
>>
>> For compilers one can always do:
>>
>> using some_compiler : n.n ; some_path : some_requirements ;
>> using some_compiler : n.nsome_string ; some_path : some_requirements ;
>>
>> as in:
>>
>> using gcc : 6.3 :
>> C:/Utilities/mingw-w64/i686-6.3.0-posix-dwarf-rt_v5-rev1/mingw32/bin/g++
>> ;
>> using gcc : 6.3c03 :
>> C:/Utilities/mingw-w64/i686-6.3.0-posix-dwarf-rt_v5-rev1/mingw32/bin/g++
>> : <cxxflags>-std=c++03 ;
>>
>> and if I run 'b2 toolset=gcc-6.3 etc.' it will use the first of the
>> using statements and if I run 'b2 toolset=gcc-6.3c03 etc.' it will use
>> the second of the two using statements.
>
> Interesting, but also quite counter-intuitive: A line such as
>
> using gcc : 6.3 ;
>
> suggests the build system is instantiating a gcc toolchain with version
> 6.3. (Assume a platform with multiple compiler versions, it would have
> to validate that it really picks a matching version !)
> Now, with
>
> using gcc : 6.3c03 ;
>
> that pattern is broken, as there is no compiler that would report
> "6.3c03" as version string.
> So the obvious question is : what is the second argument to the "using"
> rule above ? Is it a version or is it not a version ?

I don't know those answers, but I am happy that at least it works for
me. This is because the feature/subfeature way of doing the above does
not work with the check-target-builds used by config, predef, and any
other library that uses the config and predef functionality for
configuring builds.

>
>>
>> Ideally one should be able to do something similar with python.
>>
>> I have no idea how these things work internally, but just mention what
>> I have noticed works for me.
>
> Understood. So the question above goes to the boost.build developers. :-)

You have much better luck in getting answers from them than I usually
do. One of the real problems with Boost Build is not that it does not
work well in the vast majority of situations, which it clearly does, but
that in those situations where it does not work as you expect it is
almost entirely on you to figure out why, since the internals of Boost
Build are understood by only a very few and they are often too busy with
other things to answer.


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk