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

Reply via email to