Hello,<br><br>Responses inline to 1 and 2 below:<br><br>Thanks,<br><br>Juan<br><br><br><div class="gmail_quote">On Fri, Feb 18, 2011 at 10:16 AM, Michael Wild <span dir="ltr"><<a href="mailto:themiwi@gmail.com">themiwi@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">On 02/18/2011 04:48 PM, j s wrote:<br>
> Hello,<br>
><br>
> There is nothing wrong with another build system. Not all build systems fit<br>
> everyone needs, much like subversion and git being suitable for different<br>
> development styles.<br>
><br>
> When I have the time, I will start developing my own build system. It will<br>
> have the following proposed features.<br>
><br>
<br>
</div>Just my thoughts below, giving some reasons I think CMake is the way it is.<br>
<div class="im"><br>
> 1. Dependency generation by the compiler, so that the include generator<br>
> understands the c-preprocessor.<br>
<br>
</div>Well, cl.exe for one doesn't do this trick. This means, you'll have to<br>
put it in your build system, and once you've done that, why should you<br>
use the compiler then? Especially, since you'll want to be consistent<br>
across platforms.<br>
<div><br></div></blockquote><div><br>cl.exe does this trick<br><br>cl.exe /showincludes<br>
<br><a href="http://www.conifersystems.com/2008/10/09/dependencies-from-showincludes/">http://www.conifersystems.com/2008/10/09/dependencies-from-showincludes/</a><br><br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div> </div></blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
> 2. Tcl (or other) scripting language, which has clearly defined variable<br>
> scoping rules and well understood semantics.<br>
<br>
</div>There are many pros for this idea, but a very important con: People will<br>
use it as a general purpose programming language (see what often happens<br>
to SCons projects). Even CMake has this problem to a lesser extent (IMHO<br>
mainly because it's a PITA to program ;-)). But I think some people at<br>
Kitware are/were experimenting with Python bindings...<br>
<div><br></div></blockquote><div><br>This brings up a new requirement:<br><br>5. Clear delineation when things are done at configuration time, and things are done at build time.<br><br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div> </div></blockquote><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">
> 3. Ability to generate object files and use the same ones in multiple<br>
> contexts.<br>
<br>
</div>It's very easy to shoot yourself in the foot with that. Different uses<br>
might require different compiler flags on different platforms.<br>
<div class="im"><br>
> 4. Ninja generator or built in backend instead of per platform native<br>
> backends.<br>
<br>
</div>I also was wishing for some "native" generator for CMake recently...<br>
<div class="im"><br>
><br>
> I've gotten the impression from the Cmake mailing list the first 3 are not<br>
> being planned for CMake.<br>
><br>
> Juan<br>
<br>
</div><font color="#888888">Michael<br>
</font><div><div></div><div class="h5">_______________________________________________<br>
Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" target="_blank">http://www.cmake.org/Wiki/CMake_FAQ</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://www.cmake.org/mailman/listinfo/cmake" target="_blank">http://www.cmake.org/mailman/listinfo/cmake</a><br>
</div></div></blockquote></div><br>