[Scons-dev] MSVC 2017+ Toolset Support

Joseph Brill joseph.c.brill at gmail.com
Tue Aug 11 14:56:04 EDT 2020


The was a previous iteration that allowed MSVC_VERSION to contain a toolset
and added a MSVC_PRODUCT variable that could contain a product
specification and optional component type.

This was described in:
https://github.com/SCons/scons/issues/3664#issuecomment-643782430

Unfortunately, this predates the code being added to version control as it
was a proof-of-concept that evolved fairly rapidly.

On Tue, Aug 11, 2020 at 2:06 PM Bill Deegan <bill at baddogconsulting.com>
wrote:

> To be clear, I'm not in favor of your proposed MSVC_VERSION regex
> interpretation, so let's table any discussion of that as it's not relevant
> to figuring out how to properly select a version of MSVC and toolset and
> product type.
>
> Am I grossly mistaken, or would separate variables as I've proposed above
> also allow specifying as explicitly as the single string which needs to be
> regex'd?
>
>
> On Tue, Aug 11, 2020 at 9:24 AM Joseph Brill <joseph.c.brill at gmail.com>
> wrote:
>
>> On Tue, Aug 11, 2020 at 11:51 AM Mats Wichmann <mats at wichmann.us> wrote:
>>
>>> To throw another spanner into the works, there are Visual Studio product
>>> codes too, which are 16.X for 2019, 15.x for 2017 and 14.0 for 2015...
>>>
>>
>> Nothing is straightforward with the microsoft version numbers.
>>
>> A mapping was necessary from the vswhere query results containing the
>> MSVS version to the MSVC version number.  The explicitly supported
>> component ids are listed by product as there are a quite a few component
>> ids in which we are not interested.  And yes, one of the components that we
>> are not-interested in caused a previous version to fail.
>>
>> And it looks like I have a typographical error to fix as well...
>>
>> # Vswhere query elements (reverse dictionaries computed during intialization)#     MSVS_MAJOR: MSVS installationVersion.split('.')[0] <-> to _VCVER#     Products: expected product components returned in vswhere query
>> _MSVC_PRODUCTVERSION_COMPONENTIDS = {
>>     '14.2': {
>>         'MSVS_MAJOR' : '16',
>>         'Products'   : ['Enterprise', 'Professional', 'Community', 'BuildTools']
>>         },
>>     '14.1': {
>>         'MSVS_MAJOR' : '15',
>>         'Products'   : ['Enterprise', 'Professional', 'Community', 'BuildTools', _MSVC_COMPONENT_EXPRESS]
>>         },
>>
>> }
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20200811/c6f42c30/attachment.html>


More information about the Scons-dev mailing list