The SCons tool is a software construction framework based on Python and an
alternative to tools like 'make' and 'autoconf' . The software source
components and their dependencies are defined using a library of Python
modules, and, if needed, the full power of Python is available for
scripting and customizing the build procedures and products.
Software engineers in the Earth Observing Laboratory have been using SCons
for a few years to build several libraries and applications. SCons
customizations developed and shared in EOL facilitate code sharing across
different source trees. For example, the source directory for a library
can be included in the source trees of different applications, such as by
using subversion external references, and other parts of the source tree
can find and use that dependency automatically. Likewise, once one project
scripts the build settings necessary for a common requirement like netcdf,
other projects can share that same script. Other customizations provide
for continuous integration and testing, API documentation generated with
doxygen, and platform adaptations for Linux, Windows, and Macs.
This presentation will give an overview of how SCons works, how it is
extended with tool modules, and how EOL uses the tool extensions to provide
a modular, reusable software build framework.
Gary Granger received a Bachelor of Science degree in Computer Engineering from Virginia Tech, then began working for the Atmospheric Technology Division at NCAR in 1992. Over the years he has worked in several software development areas related to field deployment and instrument development, including field operations, visualization, and wind profiling radars. Currently he works in the Software Systems Group of the Earth Observing Laboratory, developing software in C++ and Python for the Integrated Sounding System, and developing LabVIEW software for spectrometers. He also advocates good software engineering practices in EOL and supports related infrastructure, such as subversion, build frameworks, and continuous integration servers.
Attachment | Size |
---|---|
eol-scons-presentation-SEA-2012.pdf | 132.34 KB |