On Sun, Nov 30, 2008 at 9:11 PM, Albert Santoni <[EMAIL PROTECTED]> wrote: > Hi Claudio, > > It's great to see your enthusiasm about Mixxx. Working on rewriting the > build system for cmake sounds like a great way to learn about Mixxx's > codebase and polish your cmake skills. Well, you caught my main personal reason for writing a cmake based build system right there. Just to learn more about mixxx. Code acceptance is secondary to that.
> Currently, there were no plans to migrate our build system away from SCons > to something else. Our SCons build system was written last summer (2007), > when we ported from Qt 3 to Qt 4. I don't think we've seen any major > complaints about SCons coming from our developers, and if we were to move to > another build system, we'd need some very good reasons. > > That being said, I'd be more than happy to discuss SCONS and cmake with you. > What are the goals you intend to achieve by moving the build system to > cmake? To me a build system is infrastructure, it's scaffolding that enables developers to work on their projects. To achieve better productivity, infrastructure must be sufficient, robust, scalable but most importantly non-intrusive. Enough but not more than necessary. The main goal of infrastructure is to allow a developer to work on the code easily, using as few resources as possible, without getting in the way. Taking this for granted, I think cmake handles this task better than scons for a couple of reasons. * 1) There's no need to install python. Seriously, python is the best thing since sliced bread and I've used it many times in the last x years, but from a windows developer's perspective, it's just one more dependency to add to the list... * 2) There's no need to leave your IDE when compiling, even though I suppose macros can be set up to run scons and automate the workflow * 3) I don't need to change the sconscript when the Qt directory changes. This goes for all other libraries, as the find mechanism of cmake is good enough for mixxx's needs * 4) I find the cmake syntax easier for the purposes of a build system, thus more maintainable and debuggable, plus cmake keeps track of all the platform-specific hacks that are currently embedded in the SConscript * 5) I like the purty culuz on the terminal telling me I'm 50% on the way ;) Plus, cmake brings cpack cdash and ctest on board. These technologies might make it easier to package mixxx (at least under windows), and enable running integrated tests on all platforms and keeping track of whether there are problems with a patch on architectures other than the ones where the developer is writing (I don't intend to keep a windows laptop for long ;) ). I'm currently migrating the build environment at the company I work for from a hodgepodge of Makefiles and scripts to cmake. It's a no-brainer in our case as it means reducing build time from 1h to 5 minutes (mainly due to the bugginess of said makefiles ;) ) I've migrated the build system of another company in the past from a custom shell script that called 40 slightly different makefiles (yuck) to scons, and it worked like a charm, so I can say I'm not biased against scons. In the case of mixxx, scons is good enough. Cmake is just a bit better, IMNSHO ;) None of these reasons are really good enough to justify the risk of switching from scons to cmake right now. The cool thing is that the two build systems can happily coexist without one stepping on each other's toes. I'm willing to work on making cmake as good as, or better than the current build system. If I succeed, reading the CMakeLists files will be easy for all developers, and will become the preferred way of working with mixxx sources. If I fail, a simple svn rm CMakeLists.txt will resolve everything ;) Just let me give this a try and try it out ;) -- Claudio Bantaloukas http://www.rdfm.org/ammuzzu/ ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Mixxx-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mixxx-devel
