ANNOUNCE: SCons 0.93 releases User's Guide,adds usability enhancements

Discussion in 'Python' started by Steven Knight, Oct 23, 2003.

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

    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.


    ABOUT SCONS

    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:

    http://lists.sourceforge.net/lists/listinfo/scons-users

    Alternatively, we invite you to subscribe to the low-volume
    scons-announce mailing list to receive notification when new versions of
    SCons become available:

    http://lists.sourceforge.net/lists/listinfo/scons-announce


    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
    Steven Knight, Oct 23, 2003
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Sudarshan Raghavan
    Replies:
    0
    Views:
    370
    Sudarshan Raghavan
    Nov 30, 2004
  2. Igor Pechtchanski

    ANNOUNCE: XML Enhancements for Java (XJ)

    Igor Pechtchanski, May 4, 2005, in forum: XML
    Replies:
    0
    Views:
    428
    Igor Pechtchanski
    May 4, 2005
  3. Igor Pechtchanski

    ANNOUNCE: XML Enhancements for Java (XJ)

    Igor Pechtchanski, May 5, 2005, in forum: XML
    Replies:
    0
    Views:
    343
    Igor Pechtchanski
    May 5, 2005
  4. Steven Knight
    Replies:
    0
    Views:
    432
    Steven Knight
    Nov 7, 2003
  5. Steven Knight
    Replies:
    0
    Views:
    1,166
    Steven Knight
    Aug 18, 2004
Loading...

Share This Page