Modular software building with Python SCons [presentation]
Granger, G. J. (2012). Modular software building with Python SCons [presentation]. In SEA Software Engineering Conference 2012. University Corporation for Atmospheric Research: Boulder, CO, US.
The SCons tool (http://www.scons.org/) 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 availabl... Show moreThe SCons tool (http://www.scons.org/) 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 extensions 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 extensions 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. Show less