+1, especially for support of Win native builds. On Tue, May 22, 2012 at 5:07 AM, Harsh J <ha...@cloudera.com> wrote:
> I am +1 with this change as well. CMake is a good choice. My other > favorite project, KDE, uses CMake as well and it has worked great > there ever since 2007. > > On Tue, May 22, 2012 at 8:40 AM, Eli Collins <e...@cloudera.com> wrote: > > +1 having a build tool that supports multiple platforms is worth the > > dependency. I've also had good experiences with cmake. > > > > > > On Mon, May 21, 2012 at 6:00 PM, Colin McCabe <cmcc...@alumni.cmu.edu> > wrote: > >> Hi all, > >> > >> We'd like to use CMake instead of autotools to build native (C/C++) > code in > >> Hadoop. There are a lot of reasons to want to do this. For one thing, > it is > >> not feasible to use autotools on the Windows platform, because it > depends on > >> UNIX shell scripts, the m4 macro processor, and some other pieces of > >> infrastructure which are not present on Windows. > >> > >> For another thing, CMake builds are substantially simpler and faster, > because > >> there is only one layer of generated code. With autotools, you have > automake > >> generating m4 code which autoconf reads, which it uses to generate a > UNIX shell > >> script, which then generates another UNIX shell script, which eventually > >> generates Makefiles. CMake simply generates Makefiles out of > CMakeLists.txt > >> files-- much simpler to understand and debug, and much faster. > >> CMake is a lot easier to learn. > >> > >> automake error messages can be very, very confusing. This is because > you are > >> essentially debugging a pile of shell scripts and macros, rather than a > >> coherent whole. So you see error messages like "autoreconf: cannot > empty > >> /tmp/ar0.4849: Is a directory" or "Can't locate object method "path" via > >> package "Autom4te... and so forth. CMake error messages come from the > CMake > >> application and they almost always immediately point you to the problem. > >> > >> From a build point of view, the net result of adopting CMake would be > that you > >> would no longer need automake and related programs installed to build > the > >> native parts of Hadoop. Instead, you would need CMake installed. > CMake is > >> packaged by Red Hat, even in RHEL5, so it shouldn't be difficult to > install > >> locally. It's also available for Mac OS X and Windows, as I mentioned > earlier. > >> > >> The JIRA for this work is at > https://issues.apache.org/jira/browse/HADOOP-8368 > >> Thanks for reading. > >> > >> sincerely, > >> Colin > > > > -- > Harsh J >