<html><head></head><body><div style="color:#000; background-color:#fff; font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px"><div id="yui_3_16_0_ym19_1_1522482827332_17940"><span>Hi !</span></div><div id="yui_3_16_0_ym19_1_1522482827332_17940"><span><br></span></div><div id="yui_3_16_0_ym19_1_1522482827332_17940"><span>> </span><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18002">Reading this on the CMake mailing list I am first of all asking myself: Why should I go for such a certainly nice alternative if I already have CMake?</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18004"><br id="yui_3_16_0_ym19_1_1522482827332_18005"></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18079">Basically once new tool is created, tool establish it's own community around it - and like with religion, it's difficult to </span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18078">turn religious people around or convince them to use other tool. </span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;"><br></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18127">Key advantage of syncProj, is that as scripting language you</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18186">will use full dialect of C# - that means you can read / write files using normal C# language, you can probe anything you want,</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18187">from files or from registry, and you have built-in RegEx if you need to parse or extract anything what is needed.</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18194">Also any version file generation, or any file generation is also relatively simple - use StringBuilder (C#, built-in).</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;">Xml or Json parsing is also simple, also built in.</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;"><br></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18360">But I think main key advantage over cmake is ability to debug project generation script itself, and having full support</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;">for intellisense (offered by Visual studio).</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;"><br></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;">> </span><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18265">On the other hand: Just think about the fact that CMake is indeed Open Source!</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;"><br></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18338">Also syncProj is fully open source code - I haven't placed any license, but I will add MIT license later on.</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;"><br></span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18320">> In other words: Standing on the shoulders of a giant gives you a phantastic view and lets you feel like you are a giant yourself! ;-)</div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321"><div id="yui_3_16_0_ym19_1_1522482827332_18395">> So in short: Thanks for the free offer, but I don't need it because I have CMake!<br id="yui_3_16_0_ym19_1_1522482827332_18396"></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18397"><br id="yui_3_16_0_ym19_1_1522482827332_18398"></div></div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321">I would prefer to avoid using different associations or getting emotional in this chat. syncProj is a small tool, my own prototype.</div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321">Even thus it's small, it can do much more already what cmake cannot do.</div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321"><br></div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321">Want to use it - use it, don't want to use it - then don't use it. It's a simple like that.</div><div style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18321"><br></div></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18601">I would prefer not to fight against cmake, but maybe check what we could have in common (maybe unit / integration testing ?).</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"><span style="font-family: HelveticaNeue, "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_18611">My vision is to have C++ as a base code in syncProj, but I will probably need C++ 2018 - ... features.</span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_18003"> <br></div><div class="signature" id="yui_3_16_0_ym19_1_1522482827332_17938">-- Have a nice day!<div id="yui_3_16_0_ym19_1_1522482827332_17937"> Tarmo.</div></div><div class="qtdSeparateBR" id="yui_3_16_0_ym19_1_1522482827332_17936"><br><br></div><div class="yahoo_quoted" id="yui_3_16_0_ym19_1_1522482827332_17928" style="display: block;"> <div style="font-family: Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 13px;" id="yui_3_16_0_ym19_1_1522482827332_17927"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_ym19_1_1522482827332_17926"> <div dir="ltr" id="yui_3_16_0_ym19_1_1522482827332_17925"> <font size="2" face="Arial" id="yui_3_16_0_ym19_1_1522482827332_17929"> <hr size="1" id="yui_3_16_0_ym19_1_1522482827332_18077"> <b><span style="font-weight:bold;">From:</span></b> Cornelis Bockemühl <cornelis@bockemuehl.ch><br> <b><span style="font-weight: bold;">To:</span></b> Tarmo Pikaro <tapika@yahoo.com>; "cmake@cmake.org" <cmake@cmake.org> <br> <b><span style="font-weight: bold;">Sent:</span></b> Saturday, March 31, 2018 12:02 PM<br> <b><span style="font-weight: bold;">Subject:</span></b> Re: [CMake] cmake analogue - syncProj visual studio generation tool<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_ym19_1_1522482827332_17930"><br><div id="yiv3312703200"><div id="yui_3_16_0_ym19_1_1522482827332_17932"><div id="yui_3_16_0_ym19_1_1522482827332_17931">Hello Tarmo,</div><div id="yui_3_16_0_ym19_1_1522482827332_17933"><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_17934">Reading this on the CMake mailing list I am first of all asking myself: Why should I go for such a certainly nice alternative if I already have CMake?</div><div id="yui_3_16_0_ym19_1_1522482827332_17935"><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_17942">At the same time I think that _answering_ this question is probably not a subject that fits into the CMake mailing list because it is obviously for CMake issues, not ads for alternatives. So in this sense my question is rhetoric only... ;-) Providing a link to further documentation (like you are doing!) is certainly enough here - and I can see that there is the one or other function that CMake does not offer.</div><div id="yui_3_16_0_ym19_1_1522482827332_17969"><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_17970">I am not asking _why_ you are writing this at all! If you are doing this in your free time I understand 100% the fun it is to re-invent the one or other wheel: I did that many times in the past, so I assume that I understand pretty well...</div><div id="yui_3_16_0_ym19_1_1522482827332_17971"><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_17976">On the other hand: Just think about the fact that CMake is indeed Open Source! It means not more and not less than that nobody is constrained to the functionality that some "gods" are offering (like it is the case with the MS Visual Studio - mostly), but you would be able to add the things that you are missing and build on the many available features that others have implemented so far - and which you will have to rewrite for your project from scratch.</div><div id="yui_3_16_0_ym19_1_1522482827332_17982"><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_17983">In other words: Standing on the shoulders of a giant gives you a phantastic view and lets you feel like you are a giant yourself! ;-)</div><div id="yui_3_16_0_ym19_1_1522482827332_17984"><br clear="none"></div><div>So in short: Thanks for the free offer, but I don't need it because I have CMake!</div><div><br clear="none"></div><div id="yui_3_16_0_ym19_1_1522482827332_18287">Regards,</div><div id="yui_3_16_0_ym19_1_1522482827332_18286">Cornelis</div><div><br clear="none"></div><div>Am Samstag, den 31.03.2018, 08:19 +0000 schrieb Tarmo Pikaro via CMake:</div><div class="yiv3312703200yqt4266551796" id="yiv3312703200yqt01963"><blockquote type="cite" id="yui_3_16_0_ym19_1_1522482827332_18285"><div style="color:#000;background-color:#fff;font-family:Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:13px;" id="yui_3_16_0_ym19_1_1522482827332_18284"><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3876"><span>Hi !</span></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3877"><span><br clear="none"></span></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878"><span id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4010">On my own free time I've managed to create tool similar to cmake - command line tool called syncProj.</span></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878"><span><br clear="none"></span></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878">Currently syncProj is aiming also for portability, but it currently has narrower list of supported platforms - supported platforms are at this moment only Windows and Android, but</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878">only Visual studio based.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878">Where cmake is using special kind of language, syncProj uses C# programming language as a base, and because of this allows full support for</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878">syncProj C# script code syntax highlighting, intellisense and full debug support.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3878"><br clear="none"></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4068">Documentation:</div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4068">https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit#</div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3879"></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4069"><br clear="none"></div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4069">Source code:</div><div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4069">https://sourceforge.net/projects/syncproj<br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4071"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">syncProj is something that was just born on the way of making another project, and I suspect that it's far from supporting </div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">all visual studio project parameters and configurations, but it provides solid code base for future development.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">So if you're familiar with C# or not familiar, but willing to learn, feel free to contact me, I can guide in syncProj code base</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">and teach you how to improve syncProj.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">Currently syncProj supports C++, but not C#, as a platform base runs only on Windows, and limited to Windows / Android platforms.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">What I have checked through Visual studio even currently start to support Linux based platforms, so if you want to or need that platform, </div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">I can guide you through how to add that support into syncProj.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">Current code coverage level is <span id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4347" style="background-color:rgb(254, 254, 254);color:rgb(85, 85, 85);font-family:Lato, sans-serif;font-size:14px;">83.23% </span>and I plan to increase that value with each future change.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">------------------- Future considerations ----------------------</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">Currently I see syncProj as intermediate solution or a tool - I think in future syncProj could actually become built-in into Visual studio itself,</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">as base class hierachy - something similar Microsoft guys are trying to achieve right now by integrating cmake initial support into Visual studio.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">cmake scripting language dialect is more difficult to learn than C#, but of course ideal world would be if C++ project would be configured </div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">using C++ "script" syntax.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">But at the moment C# allows on-fly compiling of C# code, but not C++. I think that through making C++ modules possible + </div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">allowing to compile C++ immediately - this would permit to make new variation of syncProj, which would be coded in C++ fully, but this is something</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070">to consider later on, after C++ modules starts working in full scale on multiple compilers.</div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div dir="ltr" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_4070"><br clear="none"></div><div class="yiv3312703200signature" id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3881">-- Have a nice day!<div id="yiv3312703200yui_3_16_0_ym19_1_1522482827332_3882"> Tarmo.</div></div></div></blockquote></div></div></div><br><br></div> </div> </div> </div></div></body></html>