[clam-devel] WIP/RFC: yet another build system change

Albert Santoni alberts at mixxx.org
Mon Nov 15 02:34:31 PST 2010


Hey David,

We just went through the same process with Mixxx's SCons scripts and
recently finished most of the work.

If you'd like to see what we've done, the relevant files are:

http://bazaar.launchpad.net/~mixxxdevelopers/mixxx/trunk/annotate/head%3A/mixxx/SConstruct
http://bazaar.launchpad.net/~mixxxdevelopers/mixxx/trunk/files/head:/mixxx/build/
  (see the new .py files in here!)
http://bazaar.launchpad.net/~mixxxdevelopers/mixxx/trunk/annotate/head%3A/mixxx/src/SConscript.env
(sort of yucky still)
http://bazaar.launchpad.net/~mixxxdevelopers/mixxx/trunk/annotate/head%3A/mixxx/src/SConscript
(our installation targets are in here, this is old code, not very
nice)

Good luck! :)
Albert

On Sun, Oct 31, 2010 at 8:48 AM, David García Garzón
<david.garcia at upf.edu> wrote:
> No, we are not abandoning scons for a new tool. We are pretty happy with it.
> The problem is that the scripts we initially developed to build the main three
> libraries are getting old and need a simplification. Those scripts were our
> first contact with SCons and it is clear that some design decissions were not
> the better ones, and also many workarounds are not needed anymore
> because of new Scons features are availalbe. I commited my experiments into
> clam/CLAM/scons/newscons.
>
> In summary, the current proposal includes:
> - Modules defined by subdirectories
> - All modules are built as library and plugin
> - No source build copies
> - Each module can add its own command line options, and configure checks.
> - Full use of pkg-config (a new tool with config checks has been added)
> - Working uninstall target ('scons -c install' removed also built files)
> - Using --install-sandbox scons feature instead our prefix_for_packaging
> - All the goodies in clam.py tool we already used for plugins and apps
>
> One big goal is modularity. Current modularization (core/audioio/processing)
> is useless because you always need all the modules: core, audioio (you need
> one I/O method to be useful, being fileio, jack, midi...) and processing (to
> actually do something). So we want to define smaller modules. each one
> adding their own:
> - command line scons options
> - configuration methods
> - compilation flags
> - external and internal dependencies
>
> My proposal is defining a module as a subdir with an Scons script named, say,
> 'Module' in its root. All the cxx files under that subdir are included in the
> module. All hxx get installed in prefix/include/CLAM/name. All subdirs with an
> hxx file are included in the CPPPATH to compile the module (not for
> dependants).
>
> That's WIP, the first big milestone would be reproducing current modules.
> Currently i managed to define a single module but dependencies are not done
> yet. Please, post your comments and ideas in this thread.
>
> --
> David García Garzón
> (Work) david dot garcia at upf anotherdot edu
> http://www.iua.upf.edu/~dgarcia
> _______________________________________________
> clam-devel mailing list
> clam-devel at lists.clam-project.org
> http://lists.clam-project.org/listinfo.cgi/clam-devel-clam-project.org
>



More information about the clam-devel mailing list