Sorry I forgot to get around to replying to this. I don't think you'll find disagreement with me in terms of which tool is easier to use. There are mostly two concerns for me:
1. Users will need to install CMake. Not a big deal. 2. Myself and others now have an understanding of autotools, we will have learn the CMake system. This is also not a big deal, should CMake provide a much better build system. 3. This one is the most concerning to me; there are *a lot* of semantics captured in our current build setup. Take a look at our ./configure.ac and src/Makefile.am. It will be a big undertaking to capture all those semantics using CMake as well, and if you've done C++ development in the past, your efforts might be better spent on some of the more pressing things we need done. Ben On Tue, Mar 12, 2013 at 5:36 PM, Brenden Matthews <[email protected]> wrote: > Hey Ben, > > Build systems are very important for any project, and they're something > people tend to be opinionated about. > > I've done quite a bit of C and C++ development in the past, and dealt with > a lot of deployment issues. For a discussion of CMake vs. autotools, you > can get most of the information you need from your favourite search engine. > > Modern operating systems will handle the third party libraries for you. > This might be an issue for people who are still running older > distributions, and there is little that can be done about this. As far as > I can tell, Mesos isn't using anything particularly special with regards to > third party libraries. The OS libraries (at least with Debian or Fedora & > derivatives) should be adequate in most cases. For those who want to run > the bleeding edge, they may need to update the libraries themselves. > > For developers, a switch from autotools to Mesos won't change much in terms > of workflow. Installing CMake isn't brain surgery, and CMake is (in my > opinion) much easier to use than autotools. Regardless of whether you use > CMake or another build tool, developers are required to install the build > dependencies. > > CMake has built in tools for generating packages (like RPMs and Debian > packages). It's as simple as 'make package' once you have it configured > correctly. > > I think the best way for me to convince you (and others) would be to finish > the conversion, you let you try it out for yourself. If it's not working, > we should discuss how to make it work. > > Let me know if that seems reasonable. > > Best, > > Brenden > > > On Tue, Mar 12, 2013 at 1:03 PM, Benjamin Hindman > <[email protected]>wrote: > >> Hi Brenden, >> >> For a little history, this would be the second replacement. ;) We started >> with organic makefiles before moving to autotools. >> >> I don't think any of us would be opposed to a new build system (but I only >> speak for myself), but I'd love to hear *concretely* how the new build >> system will ease development and simplify deployment. For example, we >> include third party libraries in the source tree precisely to make >> development and deployment easier/simpler! This is a common strategy in JVM >> based projects (packages which include lots of third party JARs), and until >> C/C++ gets the equivalent of a maven, I don't know of an easier/simpler way >> to do it. >> >> Moving to a new build system is a pretty substantial undertaking: it both >> requires developers to learn the new semantics as well as requires users to >> make sure they have the proper prerequisites (i.e., cmake would need to get >> installed to build Mesos). So I think it makes sense to have a careful >> discussion first. >> >> Clearly some low hanging fruit that would make deployment significantly >> easier would be to create/maintain Debian packages and RPMs. It's not clear >> to me that we'd need a new build system for this, but I'd be happy to learn >> otherwise. >> >> Ben. >> >> >> On Tue, Mar 12, 2013 at 10:46 AM, Brenden Matthews < >> [email protected]> wrote: >> >> > Hey folks, >> > >> > I've started in replacing the current Mesos build system, with a few >> goals >> > in mind: >> > >> > a) easing development >> > >> > b) simplifying deployment >> > >> > c) removing third party libraries from the source tree (where possible) >> > >> > >> > To facilitate this I've started replacing autotools with CMake, which I >> > believe is a much better build system. >> > >> > Please let me know your thoughts so I can continue the replacement. >> > >> > Best, >> > >> > Brenden >> > >>
