Boost logo

Boost :

Subject: Re: [boost] b2 --layout=versioned compiler tag in library filename
From: Mateusz Loskot (mateusz_at_[hidden])
Date: 2019-05-01 00:45:06


On Wed, 1 May 2019 at 02:10, Paul Harris <harris.pc_at_[hidden]> wrote:
> On Tue, 30 Apr 2019 at 22:53, Mateusz Loskot via Boost <boost_at_[hidden]> wrote:
>>
>> BTW, there are also CMake's issues in FindCMake.cmake
>> related to the compiler and architecture tag. So, you may have to
>> specify Boost_COMPILER and Boost_ARCHITECTURE hints
>> in order to help FindBoost.cmake recognise versioned names.
>>
>
> Seems like something that could be fixed at the CMake end... is anyone working on that?

Things are being fixed, for example
https://gitlab.kitware.com/cmake/cmake/merge_requests/2579

Another fix related to your problem was this
https://gitlab.kitware.com/cmake/cmake/issues/17701
which actually spawned introduction of Boost_ARCHITECTURE
https://gitlab.kitware.com/cmake/cmake/merge_requests/2568

Those hints like Boost_ARCHITECTURE, Boost_COMPILER are actually
provided to let users work around FindBoost.cmake deficiencies.

Since Find-modules are just 'guessers', they (and maintainers)
are doing their best, but they will never be solid and change-proof.

> > I don't see any documentation around the compiler version tag, what is the
>> > current policy?
>>
>> One of is what b2 --help says about --layout
>>
>> "The default value is 'versioned' on Windows, and 'system' on Unix."
>>
>
> Yes but it doesn't mention anything about the compiler version tag and how the version number is decided
> (and how that decision changed).

No idea, but reading and blaming the source code itself may help, e.g.:
https://github.com/boostorg/build/blob/develop/src/tools/common.jam#L960-L1002

> https://www.boost.org/doc/libs/1_70_0/more/getting_started/unix-variants.html#library-naming
> this just says
> -vc71 Toolset tag: identifies the toolset and version used to build the binary.
> I would've liked to see a little more detail on the "version" part,
> in particular, how it changed with a particular Boost and Compiler version.

AFAIK, it's always compiler's major and minor version stitched together.
Then, for GCC this scheme had to change to major only bacause:
"From GCC 5, versioning changes and minor becomes patch"

Best regards,

-- 
Mateusz Loskot, http://mateusz.loskot.net

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk