<div class="gmail_quote">On Fri, Sep 3, 2010 at 1:35 AM, Chiheng Xu <span dir="ltr">&lt;<a href="mailto:chiheng.xu@gmail.com">chiheng.xu@gmail.com</a>&gt;</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;">
Perhaps, CMake can parse CMakeLists.txt, and directly run<br>
comands(compiler, etc) to build,  without gererating Makefile,<br>
invoking make, invoking shells.<br></blockquote><div><br>Three answers, just off the top of my head:<br><br>1. Why re-invent the wheel? Make already does a lot of things quite well. CMake builds on that.<br><br>2. Remember that CMake doesn&#39;t only work with Make. It can generate Visual Studio projects and drive several other build systems. CMake isn&#39;t a build system itself; it&#39;s meant to provide a common mechanism to abstract code organization away from the underlying build system.<br>
<br>3. There&#39;s a lot of things CMakeLists might do that aren&#39;t directly build-related, such as creating test configurations and identifying platform-specific dependencies. There&#39;s no need to go through all those steps every time you just want to compile your latest change; it makes sense to have a separate configuration step for those.<br>
<br>There have been several other projects which attempted to be a &quot;better Make&quot; which is effectively what you&#39;re describing. There&#39;s nothing wrong with that, but that isn&#39;t what CMake does. If that&#39;s what you want in a tool, then I think you&#39;ll be happier finding a tool with that goal - always pick the right tool for the job at hand!<br>
<br>Ceej<br>aka Chris Hillery<br></div></div>