Re: MSVC 2017+ Toolset Support

Joseph Brill <[email protected]> Fri, 14 Aug 2020 11:40:24 -0400
Newsgroups gmane.comp.programming.tools.scons.devel
Message-ID <CAJLrGP1k19pspPomLpYcFi6n7UJS_tE4oyhLUu6qt1TuiifYuA@mail.gmail.com>
--===============3115896379287242546==
Content-Type: multipart/alternative; boundary="000000000000d7dcc205acd83d53"

--000000000000d7dcc205acd83d53
Content-Type: text/plain; charset="UTF-8"

> So to summarize the only (possible) difference between pro,ent,community
> would be in whatever optional and/or updated components were installed for
> each?
>

Yes.  Target architecture differences would likely cause the most grief.

So selecting one over the other would be useful just to use those
> differences (optional/selected tools/components available via the visual
> studio installer).
>

 Yes.  Removing all ambiguity in the presence of multiple products could be
seen as a benefit as well.

Does anyone have pro, enterprise, and community (or more than just one of
> those versions installed) that could do a dump of vswhere output to answer
> the question of ordering?
>

A change could be made to the existing vswhere query so that the order is
deterministic regardless of the order of instances returned from vswhere.

From:

VCVER_TO_VSWHERE_VER = {

    '14.2': [
        ["-version", "[16.0, 17.0)", ], # default: Enterprise,
Professional, Community  (order unpredictable?)
        ["-version", "[16.0, 17.0)", "-products",
"Microsoft.VisualStudio.Product.BuildTools"], # BuildTools
        ],
    '14.1':    [
        ["-version", "[15.0, 16.0)", ], # default: Enterprise,
Professional, Community (order unpredictable?)
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.BuildTools"], # BuildTools
        ],
    '14.1Exp': [
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.WDExpress"], # Express
        ],}

To:

_VCVER_TO_VSWHERE_VER = {
    '14.2': [
        ["-version", "[16.0, 17.0)", "-products",
"Microsoft.VisualStudio.Product.Enterprise"],
        ["-version", "[16.0, 17.0)", "-products",
"Microsoft.VisualStudio.Product.Professional"],
        ["-version", "[16.0, 17.0)", "-products",
"Microsoft.VisualStudio.Product.Community"],
        ["-version", "[16.0, 17.0)", "-products",
"Microsoft.VisualStudio.Product.BuildTools"],
        ],
    '14.1':    [
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.Enterprise"],
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.Professional"],
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.Community"],
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.BuildTools"],
        ],
    '14.1Exp': [
        ["-version", "[15.0, 16.0)", "-products",
"Microsoft.VisualStudio.Product.WDExpress"],
        ],}


Note that vswhere's source code is on github...
>

I had in the original email: I am not motivated enough to read the C++
source code for vswhere :)
Depence on the resolution order can be worked around with the solution
above.

Joe

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

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><div dir=3D"ltr"><blockquote cl=
ass=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid=
 rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><div>So to summarize t=
he only (possible) difference between pro,ent,community would be in whateve=
r optional and/or updated components were installed for each?=C2=A0</div></=
div></blockquote><div><br></div><div>Yes.=C2=A0 Target architecture differe=
nces would likely cause the most grief.</div><div><br></div></div><div dir=
=3D"ltr"><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8e=
x;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"=
><div>So selecting one over the other would be useful just to use those dif=
ferences (optional/selected tools/components available via the visual studi=
o installer).</div></div></blockquote><div><br></div><div>=C2=A0Yes.=C2=A0 =
Removing all ambiguity in the presence of multiple products could be seen a=
s a benefit as well.</div><div><br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex"><div dir=3D"ltr"><div>Does anyone have pro, enterprise, and=
 community (or more than just one of those versions installed) that could d=
o a dump of vswhere output to answer the question of ordering?</div></div><=
/blockquote><div><br></div><div>A change could be made to the existing vswh=
ere query so that the order is deterministic regardless of the order of ins=
tances returned from vswhere.</div><div><br></div><div>From:</div><div><spa=
n style=3D"color:rgb(0,128,0);font-style:italic;font-family:Consolas;font-s=
ize:10pt"><br></span></div><div><span style=3D"color:rgb(0,0,0);font-family=
:Consolas;font-size:10pt">VCVER_TO_VSWHERE_VER </span><span style=3D"font-f=
amily:Consolas;font-size:10pt;color:rgb(128,0,0)">=3D</span><span style=3D"=
color:rgb(0,0,0);font-family:Consolas;font-size:10pt"> </span><span style=
=3D"font-family:Consolas;font-size:10pt;color:rgb(128,0,0)">{</span><br></d=
iv><div><div style=3D"font-family:Consolas;font-size:10pt;color:rgb(0,0,0)"=
><pre>    <span style=3D"color:rgb(0,96,96)">&#39;14.2&#39;</span><span sty=
le=3D"color:rgb(128,0,0)">:</span> <span style=3D"color:rgb(128,0,0)">[</sp=
an>
        <span style=3D"color:rgb(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(128,=
0,0)">],</span> <span style=3D"color:rgb(0,128,0);font-style:italic"># defa=
ult: Enterprise, Professional, Community  (order unpredictable?)</span>
        <span style=3D"color:rgb(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.BuildTools&quot;</span><span style=3D"color:rgb(128,0,0)">],</span> <sp=
an style=3D"color:rgb(0,128,0);font-style:italic"># BuildTools</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>
        <span style=3D"color:rgb(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(128,=
0,0)">],</span> <span style=3D"color:rgb(0,128,0);font-style:italic"># defa=
ult: Enterprise, Professional, Community (order unpredictable?)</span>
        <span style=3D"color:rgb(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.BuildTools&quot;</span><span style=3D"color:rgb(128,0,0)">],</span> <sp=
an style=3D"color:rgb(0,128,0);font-style:italic"># BuildTools</span>
        <span style=3D"color:rgb(128,0,0)">],</span>
    <span style=3D"color:rgb(0,96,96)">&#39;14.1Exp&#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(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.WDExpress&quot;</span><span style=3D"color:rgb(128,0,0)">],</span> <spa=
n style=3D"color:rgb(0,128,0);font-style:italic"># Express</span>
        <span style=3D"color:rgb(128,0,0)">],</span>
<span style=3D"color:rgb(128,0,0)">}</span>

</pre></div></div><div>To:</div><div><div style=3D"font-family:Consolas;fon=
t-size:10pt">
<pre style=3D"color:rgb(0,0,0)"><div style=3D"font-family:Consolas;font-siz=
e:10pt"><pre>_VCVER_TO_VSWHERE_VER <span style=3D"color:rgb(128,0,0)">=3D</=
span> <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(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Enterprise&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Professional&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Community&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[16.0, 17.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.BuildTools&quot;</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>
        <span style=3D"color:rgb(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Enterprise&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Professional&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.Community&quot;</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,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.BuildTools&quot;</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.1Exp&#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(128,0,0)">[</span><span style=3D"color:rgb=
(0,128,128)">&quot;-version&quot;</span><span style=3D"color:rgb(128,0,0)">=
,</span> <span style=3D"color:rgb(0,128,128)">&quot;[15.0, 16.0)&quot;</spa=
n><span style=3D"color:rgb(128,0,0)">,</span> <span style=3D"color:rgb(0,12=
8,128)">&quot;-products&quot;</span><span style=3D"color:rgb(128,0,0)">,</s=
pan> <span style=3D"color:rgb(0,128,128)">&quot;Microsoft.VisualStudio.Prod=
uct.WDExpress&quot;</span><span style=3D"color:rgb(128,0,0)">],</span>
        <span style=3D"color:rgb(128,0,0)">],</span>
<span style=3D"color:rgb(128,0,0)">}</span></pre><pre><span style=3D"color:=
rgb(128,0,0)"><br></span></pre></div></pre></div></div><blockquote class=3D=
"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(2=
04,204,204);padding-left:1ex"><div dir=3D"ltr"><div>Note that vswhere&#39;s=
 source code is on github...</div></div></blockquote><div><br></div><div>I =
had in the original email: I am not motivated enough to read the C++ source=
 code for vswhere :)=C2=A0</div><div>Depence on the resolution order can be=
 worked around with the solution above.</div><div><br></div><div>Joe</div><=
/div><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr"><br><=
/div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo=
rder-left:1px solid rgb(204,204,204);padding-left:1ex"><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">
</blockquote></div>
</blockquote></div></div>

--000000000000d7dcc205acd83d53--

--===============3115896379287242546==
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

--===============3115896379287242546==--