SCons 0.93 releases User's Guide, adds usability enhancements

Steven Knight <[email protected]> Thu, 23 Oct 2003 09:44:27 -0500 (CDT)
Newsgroups gmane.comp.programming.tools.scons.announce
Message-ID <Pine.LNX.4.44.0310230942540.22098-100000@theopera.home.baldmt.com>
Version 0.93 of SCons has been released and is available for download
from the SCons web site:

	http://www.scons.org/

Or through the download link at the SCons project page at SourceForge:

	http://sourceforge.net/projects/scons/

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.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:

    - The following global functions have now had corresponding
      construction environment methods added:

        Action(), AddPostAction(), AddPreAction(), Alias(), Builder(),
        BuildDir(), CacheDir(), Clean(), Configure(), Default(),
        EnsurePythonVersion(), EnsureSConsVersion(), Environment(),
        Exit(), Export(), FindFile(), GetBuildPath(), GetOption(),
        Help(), Import(), Literal(), Local(), Platform(), Repository(),
        Scanner(), SConscriptChdir(), SConsignFile(), SetOption(),
        SourceSignatures(), Split(), TargetSignatures(), Tool(), Value().

    - The following construction environment methods have now had
      corresponding global functions added:

        AlwaysBuild(), Command(), Depends(), Ignore(), Install(),
        InstallAs(), Precious(), SideEffect() and SourceCode().

    - The following default Builders have now had corresponding global
      functions added:

        CFile(), CXXFile(), DVI(), Jar(), Java(), JavaH(), Library(),
        M4(), MSVSProject(), Object(), PCH(), PDF(), PostScript(),
        Program(), RES(), RMIC(), SharedLibrary(), SharedObject(),
        StaticLibrary(), StaticObject(), Tar(), TypeLibrary() and Zip().

  - 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 in all cases.
  - 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.  Follow the appropriate link for your desired format from
    the SCons documentation page at:

        http://www.scons.org/doc.html

  - The lists of global functions and construction environment methods
    in the man page have been combined and alphabetized.


ACKNOWLEDGEMENTS

Special thanks to J.T. Conklin, Charles Crain, Christian Engel, Sergey
Fogel, Ralf W. Grosse-Kunstleve, Stephen Kennedy, John Johnson, Clark
McGrew, Bram Moolenaar, Gary Oberbrunner, Gerard Patel, Marko Rauhamaa,
Anthony Roach and Christoph Wiedemann for their contributions to this
release.

On behalf of the SCons team,

	--SK



-------------------------------------------------------
This SF.net email is sponsored by: The SF.net Donation Program.
Do you like what SourceForge.net is doing for the Open
Source Community?  Make a contribution, and help us add new
features and functionality. Click here: http://sourceforge.net/donate/