<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>+Renato<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I don’t have any problem supporting Ninja. I do think that hardcoded sections should be minimized or eliminated if convenient.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>It is possible with parameters to select MSBuild, make, nmake, Ninja within a unified CMake builder.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>A unified cmake builder like this does not need to be changed when a new/better generator type becomes available, neither does it impose one on all buildslaves.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Windows support for any non-MS packages can have gaps. For example, Ninja: Windows CMake 3.0.0 no longer ships Ninja. The Ninja from github doesn’t compile with the latest GCC or support msbuild particularly well.  Easy enough to workaround, stay with 2.8.8, but workarounds must be done for most anything on Windows.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Personally I prefer Ninja. I’d just like to make the builder have options to select CMake Generators.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>-rick foos<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> lldb-dev-bounces@cs.uiuc.edu [mailto:lldb-dev-bounces@cs.uiuc.edu] <b>On Behalf Of </b>Zachary Turner<br><b>Sent:</b> Friday, January 02, 2015 5:32 PM<br><b>To:</b> René J.V.<br><b>Cc:</b> lldb-dev@cs.uiuc.edu; Nico Weber<br><b>Subject:</b> Re: [lldb-dev] MSBuild vs. Ninja build-timings on Windows<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><a href="mailto:thakis@google.com">+Nico Weber</a>​ <br><br>Nico might be able to give you some more insight on exactly why Ninja is faster than MSBuild.  My (limited) understanding is that it has better dependency tracking, but I'm not sure where the "betterness" comes from.  <o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>I'm not sure how MSBuild compares to GNU Make.  I'm not sure if anyone actually uses Make to build LLDB on Windows or if it even works.  I know at some point, even if way off into the future, it would be nice to get rid of the configure/make build entirely.  The only reason it's still around is because it supports a few features not supported by the CMake build.  If / when those issues get resolved, I think the LLVM side will try to remove it, and then we should follow suit.<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Fri Jan 02 2015 at 3:23:05 PM René J.V. <<a href="mailto:rjvbertin@gmail.com">rjvbertin@gmail.com</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><p class=MsoNormal>On Friday January 02 2015 19:53:00 Zachary Turner wrote:<br><br>Thanks!<br><br><br>> Here are build timings on my local machine comparing Ninja against MSBuild<br>> on Windows.<br><br>That's for building lldb I presume? How does MSBuild compare to (GNU) make?<br><br>>                                              Ninja                MSBuild<br>> Clean Build                           0:11:4.16           0:14:4.33<br><br>That's a larger difference than I would have expected - it seems the time spent compiling is short compared to the time that could be spent tracking dependencies?<br><br>R<o:p></o:p></p></blockquote></div></div></div></div></body></html>