<div class="gmail_quote">On Fri, Sep 3, 2010 at 1:54 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;">
Why CMake can&#39;t run as make ?<br>
<br>
CMake parse CMakeLists.txt, generate Makefile.  Then, make parse the<br>
Makefile,  and execute(serially or parallelly) shells,  shells run<br>
comands(compiler, etc) to build.<br>
<br>
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>[I replied to this question where you originally asked it in the other thread, but apparently your re-post crossed my reply. So, to keep the discussion in one place, I&#39;m copying my reply to this thread.]<br>
<br><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>