[clam-devel] WIP/RFC: yet another build system change
David García Garzón
david.garcia at upf.edu
Sun Oct 31 08:48:41 PDT 2010
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
More information about the clam-devel
mailing list