|
Boost-Build : |
Subject: Re: [Boost-build] Where in build are the OS names set
From: Vladimir Prus (ghost_at_[hidden])
Date: 2014-07-09 04:02:02
On 07/08/2014 10:39 AM, Edward Diener wrote:
>> The problem is there are 3 variables:
>>
>> - The compiler that b2 was built with
>> - The compiler that clang was built with
>> - The execution environment - which is basically the shell where b2
>> is invoked (either cmd.exe or mingw's sh.exe)
>
> So the OS that is set is the compilation environment. That does not help me since the end-user on Windows could create Boost Build with,
> let's say, VC++ and still run the MingW version of clang when using clang as the toolset using a library.
Right, that OS setting in b2 is at best a reasonable default.
>> For all I know, there's no strong correlation between those, so a way to
>> explicitly specify how clang is build, or,
>> otherwise, a way for clang to report how it was build, will be necessary.
>>
>> What does it even matter how clang was built?
>
> The end-user on Windows will execute 'b2 toolset=clang' to invoke clang as the toolset. This could mean clang as built with VC++ or it could
> mean clang as built with MingW. They are two totally different build environments, with their own subset .jam files invoked within the
> general clang.jam. Clang as built with VC++ needs to use the clang-win.jam file which I will add to Boost Build, while clang built with
> MingW will use a very slightly modified clang-linux.jam file which I can update in Boost Build. Even though both are clang under Windows
> they are largely different environments as far as Boost Build is concerned. The problem is how the end-user can distinguish between them
> from within Boost Build so that the correct sub-clang jam file is used.
I see. Could you put these files somewhere on github so that I can take a look and better understand the implications?
- Volodya
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