Re: MSVC 2017+ Toolset Support

Bill Deegan <bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org> Tue, 11 Aug 2020 11:05:59 -0700
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAEyG4CG6043ryXECg6V-EuV9UO4PXBkLk83+vPB4oRscrZ398A@mail.gmail.com>
--===============0147102280535912369==
Content-Type: multipart/alternative; boundary="00000000000017756b05ac9dedee"

--00000000000017756b05ac9dedee
Content-Type: text/plain; charset="UTF-8"

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 <[email protected]>
wrote:

> On Tue, Aug 11, 2020 at 11:51 AM Mats Wichmann <[email protected]> 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]
>         },
>
> }
>
>
>

--00000000000017756b05ac9dedee
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>To be clear, I&#39;m not in favor of your proposed MS=
VC_VERSION regex interpretation, so let&#39;s table any discussion of that =
as it&#39;s not relevant to figuring out how to properly select a version o=
f MSVC and toolset and product type.</div><div><br></div><div>Am I grossly =
mistaken, or would separate variables as I&#39;ve proposed above also allow=
 specifying as explicitly as the single string which needs to be regex&#39;=
d?</div><div><br></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr=
" class=3D"gmail_attr">On Tue, Aug 11, 2020 at 9:24 AM Joseph Brill &lt;<a =
href=3D"mailto:[email protected]">[email protected]</a>&gt; w=
rote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0p=
x 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=
=3D"ltr"><div dir=3D"ltr">On Tue, Aug 11, 2020 at 11:51 AM Mats Wichmann &l=
t;<a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a=
>&gt; wrote:<br></div><div class=3D"gmail_quote"><blockquote class=3D"gmail=
_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204=
,204);padding-left:1ex">To throw another spanner into the works, there are =
Visual Studio product<br>
codes too, which are 16.X for 2019, 15.x for 2017 and 14.0 for 2015...<br><=
/blockquote><div><br></div><div>Nothing is straightforward with the microso=
ft version numbers.</div><div><br></div><div>A mapping was necessary from t=
he vswhere=C2=A0query results containing the MSVS version to the MSVC versi=
on number.=C2=A0 The explicitly supported component ids are listed by produ=
ct as there are a quite a few component ids in which we are not interested.=
=C2=A0 And yes, one of the=C2=A0components that we are not-interested in ca=
used a previous=C2=A0version to fail.<br></div><div><br></div><div>And it l=
ooks like I have a typographical error to fix as well...</div><div style=3D=
"font-family:Consolas;font-size:10pt;color:rgb(0,0,0)">
<pre><span style=3D"color:rgb(0,128,0);font-style:italic"># Vswhere query e=
lements (reverse dictionaries computed during intialization)</span>
<span style=3D"color:rgb(0,128,0);font-style:italic">#     MSVS_MAJOR: MSVS=
 installationVersion.split(&#39;.&#39;)[0] &lt;-&gt; to _VCVER</span>
<span style=3D"color:rgb(0,128,0);font-style:italic">#     Products: expect=
ed product components returned in vswhere query</span>
_MSVC_PRODUCTVERSION_COMPONENTIDS <span style=3D"color:rgb(128,0,0)">=3D</s=
pan> <span style=3D"color:rgb(128,0,0)">{</span>
    <span style=3D"color:rgb(0,96,96)">&#39;14.2&#39;</span><span style=3D"=
color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(128,0,0)">{</span>
        <span style=3D"color:rgb(0,96,96)">&#39;MSVS_MAJOR&#39;</span> <spa=
n style=3D"color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(0,96,96)">=
&#39;16&#39;</span><span style=3D"color:rgb(128,0,0)">,</span>=20
        <span style=3D"color:rgb(0,96,96)">&#39;Products&#39;</span>   <spa=
n style=3D"color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(128,0,0)">=
[</span><span style=3D"color:rgb(0,96,96)">&#39;Enterprise&#39;</span><span=
 style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,96,96)">&=
#39;Professional&#39;</span><span style=3D"color:rgb(128,0,0)">,</span> <sp=
an style=3D"color:rgb(0,96,96)">&#39;Community&#39;</span><span style=3D"co=
lor:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,96,96)">&#39;BuildToo=
ls&#39;</span><span style=3D"color:rgb(128,0,0)">]</span>
        <span style=3D"color:rgb(128,0,0)">},</span>
    <span style=3D"color:rgb(0,96,96)">&#39;14.1&#39;</span><span style=3D"=
color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(128,0,0)">{</span>=20
        <span style=3D"color:rgb(0,96,96)">&#39;MSVS_MAJOR&#39;</span> <spa=
n style=3D"color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(0,96,96)">=
&#39;15&#39;</span><span style=3D"color:rgb(128,0,0)">,</span>
        <span style=3D"color:rgb(0,96,96)">&#39;Products&#39;</span>   <spa=
n style=3D"color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(128,0,0)">=
[</span><span style=3D"color:rgb(0,96,96)">&#39;Enterprise&#39;</span><span=
 style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,96,96)">&=
#39;Professional&#39;</span><span style=3D"color:rgb(128,0,0)">,</span> <sp=
an style=3D"color:rgb(0,96,96)">&#39;Community&#39;</span><span style=3D"co=
lor:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,96,96)">&#39;BuildToo=
ls&#39;</span><span style=3D"color:rgb(128,0,0)">,</span> _MSVC_COMPONENT_E=
XPRESS<span style=3D"color:rgb(128,0,0)">]</span>
        <span style=3D"color:rgb(128,0,0)">},</span>=C2=A0</pre></div><div>=
<span style=3D"color:rgb(128,0,0);font-family:Consolas;font-size:10pt">}</s=
pan></div><div><br></div><div>=C2=A0</div></div></div>
</blockquote></div>

--00000000000017756b05ac9dedee--

--===============0147102280535912369==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

--===============0147102280535912369==--