Menu

SCons 0.93 adds User's Guide, usability enhancements / fixes

SCons release 0.93, the fourth SCons beta release, is now available for download. SCons is a software construction tool (build tool, or substitute for Make) implemented in Python, based on the winning design in the Software Carpentry build tool competition (in turn based on the Cons build tool). This release most notably adds the first release of the SCons User's Guide, and significant usability enhancements including the ability to call most Builders and functions without an explicit construction environment.

IMPORTANT: Release 0.93 contains the following interface changes:
- Construction variables may now be expanded anywhere within an argument to a Builder or a construction environment method, not just in specific places like file prefixes and suffixes. This may cause variable interpolation if a file name or argument contained a '$' (dollar sign).
- The long-obsolete GetCommandHandler() and SetCommandHandler() functions have been removed.
- The ParseConfig() global function has been deprecated in favor of the new env.ParseConfig() method. The global function will be removed in some future release.

See the release notes for more information about these changes.

This release adds the following features:
- SCons now supports calling almost all functionality either through a global function or a construction environment method: 1) most global functions have now had corresponding construction environment methods added; 2) most construction environment methods have now had corresponding global functions added; 3) Default Builders have now had corresponding global functions.
- Package management tools on AIX and Solaris are now used to find where the C and C++ compilers are installed.
- New $CCVERSION and $CXXVERSION variables record the compiler version for many C and C++ compilers.
- A new $JARCHDIR variable supports changing to a directory using the jar -C option.
- SCons now detect Java manifest files when using jar, and specifies them using the jar m flag.
- Directories may now be used as Builder sources, and correctly trigger a rebuild when any file underneath the directory changes.
- A new SConsignFile() function allows configuration of a single file to hold all build signatures, instead of a separate .sconsign file in each directory.
- The CheckHeader(), CheckCHeader(), CheckCXXHeader() and CheckLibWithHeader() configure checks can now take a list of header files when more than one #include line is necessary.
- SCons can now decide if a .tex file is TeX or LaTeX, and will re-run latex or run bibtex as needed.
- Directories can now be the targets, sources or dependencies of the Depends(), Ignore(), Precious() and SideEffect() methods.
- The env.WhereIs() method can now take explicit "path" and "pathext" arguments.

The following fixes have been added:
- .S, .spp and .SPP assembly-language files are now properly scanned for C-preprocessor dependencies.
- The scons.py and scons.bat files now also look for the SCons modules in the site-packages directory as well.
- SCons now properly re-scans dependencies in generated or installed header files.
- The -Q option now only suppresses the "Reading" and "Building" progress messages; it was incorrectly suppressing other messages as well.
- The C scanner now finds dependencies when there is no space between the #include and the opening double quote or angle bracket.
- EnsurePythonVersion() now handles alphanumeric Python version strings.
- The env.Append() method now suppresses null values when appropriate.
- ParseConfig() now appends values properly regardless of the initial values of $CCFLAGS, $CPPPATH, $LIBPATH and $LIBS.
- If there were any build errors, the final progress message now says "...terminated because of errors" instead "...done building targets."
- "rm" on Win32 systems is only used if Cygwin Python is being used.
- Qt is now properly detected on the local system.
- Configure checks now support BooleanType as a legal return value.
- Attempts to call a Configure check from within a Builder function now generate an error message.
- Builders can now be called when a Configure context is open.
- Trying to use the -j option under Python versions without parallel build support (threading) now issues a warning and carries on.

Performance has been improved as follows:
- A new thread pool implementation improves parallel build performance and handling of keyboard interrupts.

The documentation has been improved:
- The first release of the SCons User's Guide is now available multiple formats.
- The lists of global functions and construction environment methods in the man page have been combined and alphabetized.

Posted by Steven Knight 2003-10-23

Log in to post a comment.