Re: MSVC 2017+ Toolset Support
Jason Kenny <[email protected]> Wed, 12 Aug 2020 02:52:03 +0000
| Newsgroups | gmane.comp.programming.tools.scons.devel |
|---|---|
| Message-ID | <BYAPR05MB57366B3B5B278E99A56EFFCA84420@BYAPR05MB5736.namprd05.prod.outlook.com> |
--===============7996236917070584192== Content-Language: en-US Content-Type: multipart/alternative; boundary="_000_BYAPR05MB57366B3B5B278E99A56EFFCA84420BYAPR05MB5736namp_" --_000_BYAPR05MB57366B3B5B278E99A56EFFCA84420BYAPR05MB5736namp_ Content-Type: text/plain; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable Just to chime in.. my understanding of the vc compiler is that it is the sa= me for all these cases. The community, profession and enterprise is about e= xtra paid features of the IDE. While these are all side by side installable= .. the code you build, as I understand, is the same. For me at least I don= =92t see what value exists yet in selecting license level values of the MSV= S Jason Sent from Mail<https://go.microsoft.com/fwlink/?LinkId=3D550986> for Window= s 10 From: Joseph Brill<mailto:[email protected]> Sent: Tuesday, August 11, 2020 1:55 PM To: Bill Deegan<mailto:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org> Cc: SCons developer list<mailto:[email protected]> Subject: Re: [Scons-dev] MSVC 2017+ Toolset Support The was a previous iteration that allowed MSVC_VERSION to contain a toolset= and added a MSVC_PRODUCT variable that could contain a product specificati= on and optional component type. This was described in: https://github.com/SCons/scons/issues/3664#issuecomm= ent-643782430<https://eur06.safelinks.protection.outlook.com/?url=3Dhttps%3= A%2F%2Fgithub.com%2FSCons%2Fscons%2Fissues%2F3664%23issuecomment-643782430&= data=3D02%7C01%7C%7C0c91771b51e348310f4908d83e2826ba%7C84df9e7fe9f640afb435= aaaaaaaaaaaa%7C1%7C0%7C637327689453041815&sdata=3D2ZkIEEHXd9IK%2FgJV0HUmYnz= mciAjj5FxUvI5TDtvuF0%3D&reserved=3D0> 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-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org<mail= to:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org>> wrote: To be clear, I'm not in favor of your proposed MSVC_VERSION regex interpret= ation, so let's table any discussion of that as it's not relevant to figuri= ng out how to properly select a version of MSVC and toolset and product typ= e. Am I grossly mistaken, or would separate variables as I've proposed above a= lso allow specifying as explicitly as the single string which needs to be r= egex'd? On Tue, Aug 11, 2020 at 9:24 AM Joseph Brill <[email protected]<mail= to:[email protected]>> wrote: On Tue, Aug 11, 2020 at 11:51 AM Mats Wichmann <[email protected]<mailto:mat= [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-intere= sted 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 intializatio= n) # MSVS_MAJOR: MSVS installationVersion.split('.')[0] <-> to _VCVER # Products: expected product components returned in vswhere query _MSVC_PRODUCTVERSION_COMPONENTIDS =3D { '14.2': { 'MSVS_MAJOR' : '16', 'Products' : ['Enterprise', 'Professional', 'Community', 'BuildTo= ols'] }, '14.1': { 'MSVS_MAJOR' : '15', 'Products' : ['Enterprise', 'Professional', 'Community', 'BuildTo= ols', _MSVC_COMPONENT_EXPRESS] }, } --_000_BYAPR05MB57366B3B5B278E99A56EFFCA84420BYAPR05MB5736namp_ Content-Type: text/html; charset="Windows-1252" Content-Transfer-Encoding: quoted-printable <html xmlns:o=3D"urn:schemas-microsoft-com:office:office" xmlns:w=3D"urn:sc= hemas-microsoft-com:office:word" xmlns:m=3D"http://schemas.microsoft.com/of= fice/2004/12/omml" xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DWindows-1= 252"> <meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)"> <style><!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Consolas; panose-1:2 11 6 9 2 2 4 3 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; font-size:11.0pt; font-family:"Calibri",sans-serif;} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} pre {mso-style-priority:99; mso-style-link:"HTML Preformatted Char"; margin:0in; margin-bottom:.0001pt; font-size:10.0pt; font-family:"Courier New";} span.HTMLPreformattedChar {mso-style-name:"HTML Preformatted Char"; mso-style-priority:99; mso-style-link:"HTML Preformatted"; font-family:"Courier New";} .MsoChpDefault {mso-style-type:export-only;} @page WordSection1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.WordSection1 {page:WordSection1;} --></style> </head> <body lang=3D"EN-US" link=3D"blue" vlink=3D"#954F72"> <div class=3D"WordSection1"> <p class=3D"MsoNormal">Just to chime in.. my understanding of the vc compil= er is that it is the same for all these cases. The community, profession an= d enterprise is about extra paid features of the IDE. While these are all s= ide by side installable.. the code you build, as I understand, is the same. For me at least I don=92t see wha= t value exists yet in selecting license level values of the MSVS</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Jason</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <p class=3D"MsoNormal">Sent from <a href=3D"https://go.microsoft.com/fwlink= /?LinkId=3D550986"> Mail</a> for Windows 10</p> <p class=3D"MsoNormal"><o:p> </o:p></p> <div style=3D"mso-element:para-border-div;border:none;border-top:solid #E1E= 1E1 1.0pt;padding:3.0pt 0in 0in 0in"> <p class=3D"MsoNormal" style=3D"border:none;padding:0in"><b>From: </b><a hr= ef=3D"mailto:[email protected]">Joseph Brill</a><br> <b>Sent: </b>Tuesday, August 11, 2020 1:55 PM<br> <b>To: </b><a href=3D"mailto:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org">Bill Deegan</a><br> <b>Cc: </b><a href=3D"mailto:[email protected]">SCons developer list</a><= br> <b>Subject: </b>Re: [Scons-dev] MSVC 2017+ Toolset Support</p> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <div> <p class=3D"MsoNormal">The was a previous iteration that allowed MSVC_VERSI= ON to contain a toolset and added a MSVC_PRODUCT variable that could contai= n a product specification and optional component type.<o:p></o:p></p> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">This was described in: <a href=3D"https://eur06= .safelinks.protection.outlook.com/?url=3Dhttps%3A%2F%2Fgithub.com%2FSCons%2= Fscons%2Fissues%2F3664%23issuecomment-643782430&data=3D02%7C01%7C%7C0c9= 1771b51e348310f4908d83e2826ba%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C= 637327689453041815&sdata=3D2ZkIEEHXd9IK%2FgJV0HUmYnzmciAjj5FxUvI5TDtvuF= 0%3D&reserved=3D0">https://github.com/SCons/scons/issues/3664#issuecomm= ent-643782430</a><o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">Unfortunately, this predates the code being add= ed to version control as it was a proof-of-concept that evolved fairly rapi= dly.<o:p></o:p></p> </div> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <div> <div> <p class=3D"MsoNormal">On Tue, Aug 11, 2020 at 2:06 PM Bill Deegan <<a h= ref=3D"mailto:bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org">bill-cJFiu+DHMVC5azolltMz9laTQe2KTcn/@public.gmane.org</a>> = wrote:<o:p></o:p></p> </div> <blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i= n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"> <div> <div> <p class=3D"MsoNormal">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.<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">Am I grossly mistaken, or would separate variables a= s I've proposed above also allow specifying as explicitly as the single str= ing which needs to be regex'd?<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> </div> <p class=3D"MsoNormal"><o:p> </o:p></p> <div> <div> <p class=3D"MsoNormal">On Tue, Aug 11, 2020 at 9:24 AM Joseph Brill <<a = href=3D"mailto:[email protected]" target=3D"_blank">joseph.c.brill@g= mail.com</a>> wrote:<o:p></o:p></p> </div> <blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i= n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"> <div> <div> <p class=3D"MsoNormal">On Tue, Aug 11, 2020 at 11:51 AM Mats Wichmann <<= a href=3D"mailto:[email protected]" target=3D"_blank">[email protected]</a>&g= t; wrote:<o:p></o:p></p> </div> <div> <blockquote style=3D"border:none;border-left:solid #CCCCCC 1.0pt;padding:0i= n 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"> <p class=3D"MsoNormal">To throw another spanner into the works, there are V= isual Studio product<br> codes too, which are 16.X for 2019, 15.x for 2017 and 14.0 for 2015...<o:p>= </o:p></p> </blockquote> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">Nothing is straightforward with the microsoft versio= n numbers.<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">A mapping was necessary from the vswhere query = results containing the MSVS version to the MSVC version number. The e= xplicitly supported component ids are listed by product as there are a quit= e 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.<o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> <div> <p class=3D"MsoNormal">And it looks like I have a typographical error to fi= x as well...<o:p></o:p></p> </div> <div> <pre><i><span style=3D"color:green"># Vswhere query elements (reverse dicti= onaries computed during intialization)</span></i><span style=3D"color:black= "><o:p></o:p></span></pre> <pre><i><span style=3D"color:green"># MSVS_MAJOR: M= SVS installationVersion.split('.')[0] <-> to _VCVER</span></i><span s= tyle=3D"color:black"><o:p></o:p></span></pre> <pre><i><span style=3D"color:green"># Products: exp= ected product components returned in vswhere query</span></i><span style=3D= "color:black"><o:p></o:p></span></pre> <pre><span style=3D"color:black">_MSVC_PRODUCTVERSION_COMPONENTIDS </span><= span style=3D"color:maroon">=3D</span><span style=3D"color:black"> </span><= span style=3D"color:maroon">{</span><span style=3D"color:black"><o:p></o:p>= </span></pre> <pre><span style=3D"color:black"> </span><span style=3D"c= olor:#006060">'14.2'</span><span style=3D"color:maroon">:</span><span style= =3D"color:black"> </span><span style=3D"color:maroon">{</span><span style= =3D"color:black"><o:p></o:p></span></pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:#006060">'MSVS_MAJOR'</span><span style=3D"col= or:black"> </span><span style=3D"color:maroon">:</span><span style=3D"color= :black"> </span><span style=3D"color:#006060">'16'</span><span style=3D"col= or:maroon">,</span><span style=3D"color:black"> <o:p></o:p></span></pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:#006060">'Products'</span><span style=3D"= color:black"> </span><span style=3D"color:maroon">:</span><span= style=3D"color:black"> </span><span style=3D"color:maroon">[</span><span s= tyle=3D"color:#006060">'Enterprise'</span><span style=3D"color:maroon">,</s= pan><span style=3D"color:black"> </span><span style=3D"color:#006060">'Prof= essional'</span><span style=3D"color:maroon">,</span><span style=3D"color:b= lack"> </span><span style=3D"color:#006060">'Community'</span><span style= =3D"color:maroon">,</span><span style=3D"color:black"> </span><span style= =3D"color:#006060">'BuildTools'</span><span style=3D"color:maroon">]</span>= <span style=3D"color:black"><o:p></o:p></span></pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:maroon">},</span><span style=3D"color:black"><= o:p></o:p></span></pre> <pre><span style=3D"color:black"> </span><span style=3D"c= olor:#006060">'14.1'</span><span style=3D"color:maroon">:</span><span style= =3D"color:black"> </span><span style=3D"color:maroon">{</span><span style= =3D"color:black"> <o:p></o:p></span></pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:#006060">'MSVS_MAJOR'</span><span style= =3D"color:black"> </span><span style=3D"color:maroon">:</span><span style= =3D"color:black"> </span><span style=3D"color:#006060">'15'</span><span sty= le=3D"color:maroon">,</span><span style=3D"color:black"><o:p></o:p></span><= /pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:#006060">'Products'</span><span style=3D"color= :black"> </span><span style=3D"color:maroon">:</span><span styl= e=3D"color:black"> </span><span style=3D"color:maroon">[</span><span style= =3D"color:#006060">'Enterprise'</span><span style=3D"color:maroon">,</span>= <span style=3D"color:black"> </span><span style=3D"color:#006060">'Professi= onal'</span><span style=3D"color:maroon">,</span><span style=3D"color:black= "> </span><span style=3D"color:#006060">'Community'</span><span style=3D"co= lor:maroon">,</span><span style=3D"color:black"> </span><span style=3D"colo= r:#006060">'BuildTools'</span><span style=3D"color:maroon">,</span><span st= yle=3D"color:black"> _MSVC_COMPONENT_EXPRESS</span><span style=3D"color:mar= oon">]</span><span style=3D"color:black"><o:p></o:p></span></pre> <pre><span style=3D"color:black"> = </span><span style=3D"color:maroon">},</span><span style=3D"color:black">&= nbsp;<o:p></o:p></span></pre> </div> <div> <p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:Consolas= ;color:maroon">}</span><o:p></o:p></p> </div> <div> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> </div> </div> </blockquote> </div> </blockquote> </div> <p class=3D"MsoNormal" style=3D"margin-left:9.6pt"> <o:p></o:p></p> <p class=3D"MsoNormal"><o:p> </o:p></p> </div> </body> </html> --_000_BYAPR05MB57366B3B5B278E99A56EFFCA84420BYAPR05MB5736namp_-- --===============7996236917070584192== 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 --===============7996236917070584192==--