ANNOUNCE: SCons beta 0.91 adds Qt and SWIG support
knight at baldmt.com
Thu Aug 14 22:51:32 CEST 2003
SCons is a software construction tool (build tool, or make tool) written
in Python. It is based on the design which won the Software Carpentry
build tool competition in August 2000.
Beta version 0.91 of SCons has been released and is available for
download from the SCons web site:
Or through the download link at the SCons project page at SourceForge:
RPM and Debian packages and a Win32 installer are all available, in
addition to the traditional .tar.gz and .zip files.
WHAT'S NEW IN THIS RELEASE?
IMPORTANT: Release 0.91 contains the following interface changes:
- The spelling of the "validater" Builder option has been corrected to
"validator". The old spelling still works, but generates a warning.
- The SConscript() function no longer automatically splits its argument
on white space into a list of SConscript file names. You must now
explicitly enclose the argument in the Split() function (or do
something similar) if you want that behavior.
See the release notes for more information about these changes.
This release adds the following features:
- SWIG support has been added.
- Qt support for processing .ui files into .c files has been added.
- You may now specify a list of tools when calling Environment.Copy().
- A new "sconsign" script can be used to dump the contents of
- A new $MAXLINELENGTH construction variables allows control of when
a temporary file is used for long link lines on Win32.
- A Builder emitter can now be a dictionary that maps different source
file types (suffixes) to separate emitter functions.
- Builder "prefix" and "suffix" arguments can now be callables that
return generated strings, or dictionaries that map different source
file types (suffixes) to separate prefix or suffix values.
- When executing a Win32 long link line in a temporary file, SCons
now also prints the long line being executed through the file.
- A new $CPPDEFINES variables supports defining platform-independent C
preprocessor command-line arguments.
- SCons now uses the C++ compiler only if there are any object files
from C++ sources being linked, and otherwise invokes the C compiler.
The following fixes have been added:
- Python Value Nodes now work when using timestamps for signatures.
- SCons now creates a .hpp file when the yacc file ends in .yy and the
-d YACC flag is used.
- SCons now correctly deduces target prefixes from source files in
subdirectories in all tested cases.
- When CVS checkout errors occur, SCons no longer creates zero-length
files by mistake.
- All Actions now print correctly when using the --cache-show option.
- The Command() Builder can now take a directory as a source.
- SConscript file or path names with white space now work.
- The Microsoft Visual C++ /TP argument has been added to the default
$CXXFLAGS value, so it can compile all the different C++ suffixes.
- A problem with checking whether certain Node types are up-to-date
has been fixed.
- The LIB construction variable is now initialized for the Intel
- The g++ and gcc Tool specifications now actually use g++ and
gcc in preference to c++ and cc.
- SCons configuration tests no longer hang if a piped command
generates more output than can be read in single buffer.
Error handling has been improved as follows:
- Handling Python errors in SConscript files is now more informative.
- SCons now reports the target being built in various error conditions
that prevent the build Action from being executed.
- Incorrect arguments to the Install() function generates a better
- A stack trace is now generated if the internal task controller
catches an exception.
Performance has been improved as follows:
- A default environment is created when needed, not every invocation.
- Internal maintenance of various lists of dependencies has been
sped up by using a dictionary to search for duplication.
- The list of dependent children is now calculated once and cached.
- The -debug=pdb option now invokes the Python debugger directly,
not by recursively invoking Python+SCons.
The following changes have been made to the SCons packaging:
- An incorrect distutils warning message when using --prefix=
option has been removed.
- Building the SCons .rpm package should no longer depend on the
installation location of the local distutils.
The documentation has been improved:
- The help output generated by "scons -H" has been tightened.
- An explanation about SCons not propagating the external environment
has been added to the introduction.
- The AlwaysBuild() function is now better explained.
- The SConscript function's "dirs" and "name" keywords are now documented.
- Typos have been fixed.
Distinctive features of SCons include:
- a global view of all dependencies; no multiple passes to get
everything built properly
- configuration files are Python scripts, allowing the full use of a
real scripting language to solve difficult build problems
- a modular architecture allows the SCons Build Engine to be
embedded in other Python software
- the ability to scan files for implicit dependencies (#include files);
- improved parallel build (-j) support that provides consistent
build speedup regardless of source tree layout
- use of MD5 signatures to decide if a file has really changed; no
need to "touch" files to fool make that something is up-to-date
- easily extensible through user-defined Builder and Scanner objects
- build actions can be Python code, as well as external commands
An scons-users mailing list is available for those interested in getting
started using SCons. You can subscribe at:
Alternatively, we invite you to subscribe to the low-volume
scons-announce mailing list to receive notification when new versions of
SCons become available:
Special thanks to Chad Austin, Bram Moolenaar, Gary Oberbrunner, Laurent
Pelecq, Ben Scott and Christoph Wiedemann for their contributions to
On behalf of the SCons team,
More information about the Python-list