SCons Changelog

What's new in SCons 2.3.0

Mar 4, 2013
  • Added ability to run scripts/scons.py directly from source checkout Hide deprecated --debug={dtree,stree,tree} from --help output Error messages from option parser now include hints about valid choices
  • Cleaned up some Python 1.5 and pre-2.3 code, so don't expect SCons to run on anything less than Python 2.4 anymore
  • Several fixes for runtest.py:
  • exit with an error if no tests were found
  • removed --noqmtest option - this behavior is by default
  • replaced `-o FILE --xml` combination with `--xml FILE`
  • changed `-o, --output FILE` option to capture stdout/stderr output from runtest.py
  • Remove os_spawnv_fix.diff patch required to enable parallel builds support prior to Python 2.2
  • Fix WiX Tool to use .wixobj rather than .wxiobj for compiler output
  • Support building with WiX releases after 2.0
  • Fix nested LIBPATH expansion by flattening sequences in subst_path.
  • Print target name with command execution time with --debug=time
  • Fix subprocess spawning on Windows. Work around a Windows bug that can crash python occasionally when using -jN. (#2449)
  • Updated test framework to support dir and file fixtures and added ability to test external (out-of-tree) tools (#2862). See doc in QMTest/test-framework.rst.
  • Fixed several errors in the test suite (Java paths, MSVS version detection, Tool import), additionally provided MinGW command-line support for the CXX, AS and Fortran tests, refactored the detection of the gcc version and the according Fortran startup library, provided a new module rpmutils.py, wrapping the RPM naming rules for target files and further hardware-dependent info (compatibility, compiler flags, ...),
  • added new test methods must_exist_one_of() and must_not_exist_any_of() and removed Aegis support from runtest.py. (#2872)
  • Add -jN support to runtest.py to run tests in parallel
  • Add MSVC10 and MSVC11 support to get_output low-level bat script runner.
  • Fix MSVS solution generation for VS11, and fixed tests.
  • Updated the TeX builder to support the \newglossary command in LaTeX's glossaries package and the files it creates.
  • Improve support for new versions of biblatex in the TeX builder so biber is called automatically if biblatex requires it.
  • Add SHLIBVERSION as an option that tells SharedLibrary to build a versioned shared library and create the required symlinks.
  • Add builder InstallVersionedLib to create the required symlinks installing a versioned shared library.

New in SCons 2.2.0 (Aug 6, 2012)

  • Fix 32-bit Visual Express C++ on 64-bit Windows (generate 32-bit code)
  • Added gettext toolset
  • Fixed FindSourceFiles to find final sources (leaf nodes).
  • Allow Node objects in Java path (#2825)
  • Make Windows not redefine builtin file as un-inheritable (#2857)
  • Fix WINDOWS_INSERT_DEF on MinGW (Windows) (#2856)
  • Fix LINKCOMSTR, SHLINKCOMSTR, and LDMODULECOMSTR on Windows (#2833).
  • Make -s (silent mode) be silent about entering subdirs (#2976).
  • Fix cloning of builders when cloning environment (#2821).
  • Show valid Visual Studio architectures in error message
  • when user passes invalid arch.
  • Support for Microsoft Visual Studio 11 (both using it
  • and generating MSVS11 solution files).
  • Fixed the Taskmaster, curing spurious build failures in
  • multi-threaded runs (#2720).
  • Improved documentation of command-line variables (#2809).
  • Fixed scons-doc.py to properly convert main XML files (#2812).
  • Updated the TeX builder to support LaTeX's multibib package.
  • Updated the TeX builder to support LaTeX's biblatex package.
  • Added support for using biber instead of bibtex by setting
  • env['BIBTEX'] = 'biber'
  • Test for FORTRANPPFILESUFFIXES (#2129).

New in SCons 2.1.0 (Apr 6, 2012)

  • Fix Windows resource compiler scanner to accept DOS line endings
  • From Matthias:
  • Update MSVS documents to remove note indicating that only one
  • project is currently supported per solution file
  • From Grzegorz Bizon:
  • Fix long compile lines in batch mode by using TEMPFILE
  • Fix MSVC_BATCH=False (was treating it as true)
  • From Justin Gullingsrud:
  • support -std=c++0x and related CXXFLAGS in pkgconfig (ParseFlags)
  • From Vincent Beffara:
  • Support -dylib_file in pkgconfig (ParseFlags)
  • From Gary Oberbrunner and Sohail Somani:
  • new construction variable WINDOWS_EMBED_MANIFEST to automatically
  • embed manifests in Windows EXEs and DLLs
  • From Gary Oberbrunner:
  • Fix Visual Studio project generation when CPPPATH contains Dir nodes
  • Ensure Visual Studio project is regenerated when CPPPATH or CPPDEFINES change
  • Fix unicode error when using non-ASCII filenames with Copy or Install
  • Put RPATH in LINKCOM rather than LINKFLAGS so resetting
  • LINKFLAGS doesn't kill RPATH
  • Fix precompiled headers on Windows when variant dir name has spaces
  • Adding None to an Action no longer fails (just returns original action)
  • New --debug=prepare option to show each target as it's being
  • prepared, whether or not anything needs to be done for it
  • New debug option --debug=duplicate to print a line for each
  • unlink/relink (or copy) of a variant file from its source file
  • Improve error message for EnumVariables to show legal values
  • Fix Intel compiler to sort versions >9 correctly (esp. on Linux)
  • Fix Install() when the source and target are directories and the
  • target directory exists
  • From David Garcia Garzon:
  • Fix Delete to be able to delete broken symlinks and dir
  • symlinks
  • From Robert Lehr:
  • Handle .output file generated by bison/yacc properly. Cleaning it
  • when necessary
  • From Antoine Dechaume:
  • Handle SWIG file where there is whitespace after the module name
  • properly. Previously the generated files would include
  • the whitespace
  • From Dmitry R:
  • Handle Environment in case __semi_deepcopy is None
  • From Benoit Belley:
  • Much improved support for Windows UNC paths (\\SERVERNAME)
  • From Jean-Baptiste Lab
  • Fix problems with appending CPPDEFINES that contain
  • dictionaries, and related issues with Parse/MergeFlags and
  • CPPDEFINES
  • From Allen Weeks
  • Fix for an issue with implicit-cache with multiple targets
  • when dependencies are removed on disk
  • From Evgeny Podjachev and Alexey Petruchick
  • Support generation of Microsoft Visual Studio 2008 (9.0)
  • and 2010 (10.0) project and solution files
  • From Ken Deeter
  • Fix a problem when FS Entries which are actually Dirs have builders
  • From Luca Falavigna
  • Support Fortran 03
  • From Gary Oberbrunner
  • Print the path to the SCons package in scons --version
  • From Jean-Fran�ois Colson
  • Improve Microsoft Visual Studio Solution generation, and fix
  • various errors in the generated solutions especially when using
  • MSVS_SCC_PROVIDER, and when generating multiple projects. The
  • construction variable MSVS_SCC_PROJECT_BASE_PATH, which never
  • worked properly, is removed. Users can use the new variable
  • MSVS_SCC_CONNECTION_ROOT instead if desired
  • From Anatoly Techtonik
  • Use subprocess in bootstrap.py instead of os.execve to avoid
  • losing output control on Windows (http://bugs.python.org/issue9148)
  • Revert patch for adding SCons to App Paths, because standard cmd
  • shell doesn't search there. This is confusing, because `scons` can
  • be executed from explorer, but fail to start from console
  • Fix broken installation with easy_install on Windows (issue #2051)
  • SCons traditionally installed in a way that allowed to run multiple
  • versions side by side. This custom logic was incompatible with
  • easy_install way of doing things
  • Use epydoc module for generating API docs in HTML if command line
  • utility is not found in PATH. Actual for Windows
  • From Alexander Goomenyuk
  • Add .sx to assembly source scanner list so .sx files
  • get their header file dependencies detected
  • From Arve Knudsen
  • Set module metadata when loading site_scons/site_init.py
  • so it is treated as a proper module; __doc__, __file__ and
  • name__ now refer to the site_init.py file
  • From Russel Winder
  • Users Guide updates explaining that Tools can be packages as
  • well as python modules
  • From Gary Oberbrunner
  • New systemwide and per-user site_scons dirs
  • From Dirk Baechle
  • XML fixes in User's Guide
  • Fixed the detection of 'jar' and 'rmic' during
  • the initialization of the respective Tools (#2730)
  • Improved docs for custom Decider functions and
  • custom Scanner objects (#2711, #2713)
  • Corrected SWIG module names for generated *.i files (#2707)
  • From Joe Zuntz
  • Fixed a case-sensitivity problem with Fortran modules
  • From Bauke Conijn
  • Added Users Guide example for auto-generated source code
  • From Steven Knight
  • Fix explicit dependencies (Depends()) on Nodes that don't have
  • attached Builders
  • Fix use of the global Alias() function with command actions
  • From Matt Hughes
  • Fix the ability to append to default $*FLAGS values (which are
  • implemented as CLVar instances) in a copied construction environment
  • without affecting the original construction environment's value
  • From Rob Managan
  • Updated the TeX command strings to include a /D on Windows in
  • case the new directory is on a different drive letter
  • Fixed the LaTeX scanner so dependencies are found in commands that
  • are broken across lines with a comment or have embedded spaces
  • The TeX builders should now work with tex files that are generated
  • by another program. Thanks to Hans-Martin von Gaudecker for
  • isolating the cause of this bug
  • Added support for INDEXSTYLE environment variable so makeindex can
  • find style files
  • Added support for the bibunits package so we call bibtex on all
  • the bu*.aux files
  • Add support of finding path information on OSX for TeX applications
  • MacPorts and Fink paths need to be added by the user
  • From Russel Winder
  • Add support for DMD version 2 (the phobos2 library)
  • From William Deegan
  • Add initial support for VS/VC 2010 (express and non-express versions)
  • Remove warning for not finding MS VC/VS install
  • "scons: warning: No version of Visual Studio compiler found
  • C/C++ compilers most likely not set correctly"
  • Add support for Linux 3.0

New in SCons 2.0.1 (Aug 20, 2010)

  • Fix XML in documentation.
  • Fixed a case-sensitivity problem with Fortran modules.
  • Added Users Guide example for auto-generated source code
  • Fix explicit dependencies (Depends()) on Nodes that don't have
  • attached Builders.
  • Provide forward compatibility for the 'profile' module.
  • Provide forward compatibility for the 'pickle' module.
  • Provide forward compatibility for the 'io' module.
  • Provide forward compatibility for the 'queue' module.
  • Provide forward compatibility for the 'collections' module.
  • Provide forward compatibility for the 'builtins' module.
  • Provide forward compatibility for 'sys.intern()'.
  • Convert to os.walk() from of os.path.walk().
  • Remove compatibility logic no longer needed.
  • Add a '-3' option to runtest to print 3.x incompatibility warnings.
  • Convert old-style classes into new-style classes.
  • Fix "Ignoring corrupt sconsign entry" warnings when building
  • in a tree with a pre-2.0 .sconsign file.
  • Fix propagation from environment of VS*COMNTOOLS to resolve issues
  • initializing MSVC/MSVS/SDK issues.
  • Handle detecting Visual C++ on Python verions with upper-case
  • platform architectures like 'AMD64'.
  • Fix the ability to append to default $*FLAGS values (which are
  • implemented as CLVar instances) in a copied construction environment
  • without affecting the original construction environment's value.
  • Updated the TeX command strings to include a /D on Windows in
  • case the new directory is on a different drive letter.
  • Fixed the LaTeX scanner so dependencies are found in commands that
  • are broken across lines with a comment or have embedded spaces.
  • Revisions to README.
  • Apply numerous Python fixers to update code to more modern idioms.
  • Find where fixers should be applied to code in test strings and
  • apply the fixers there, too.
  • Write a fixer to convert string functions to string methods.
  • Modify the 'dict' fixer to be less conservative.
  • Modify the 'apply' fixer to handle more cases.
  • Create a modified 'types' fixer that converts types to 2.x
  • equivalents rather than 3.x equivalents.
  • Write a 'division' fixer to highlight uses of the old-style
  • division operator. Correct usage where needed.
  • Add forward compatibility for the new 'memoryview' function
  • which replaces the 'buffer' function).
  • Add forward compatibility for the 'winreg' module.
  • Remove no-longer-needed 'platform' module.
  • Run tests with the '-3' option to Python 2.6 and clear up
  • various reported incompatibilities.
  • Comb out code paths specialized to Pythons older than 2.4.
  • Update deprecation warnings; most now become mandatory.
  • Start deprecation cycle for BuildDir() and build_dir.
  • Start deprecation cycle for SourceCode() and related factories
  • Fixed a problem with is_Dict() not identifying some objects derived
  • from UserDict.
  • Document the AllowSubstExceptions() function in the User's Guide.
  • Migrate MSVC/MSVS/SDK improvements from 1.3 branch.

New in SCons 2.0.0 (Jun 16, 2010)

  • Fix XML in documentation.
  • Revisions to README.
  • From Steven Knight:
  • Provide forward compatibility for the 'profile' module.
  • Provide forward compatibility for the 'pickle' module.
  • Provide forward compatibility for the 'io' module.
  • Provide forward compatibility for the 'queue' module.
  • Provide forward compatibility for the 'collections' module.
  • Provide forward compatibility for the 'builtins' module.
  • Provide forward compatibility for 'sys.intern()'.
  • Convert to os.walk() from of os.path.walk().
  • Remove compatibility logic no longer needed.
  • Add a '-3' option to runtest to print 3.x incompatibility warnings.
  • Convert old-style classes into new-style classes.
  • Fix "Ignoring corrupt sconsign entry" warnings when building
  • in a tree with a pre-2.0 .sconsign file.
  • Fix propagation from environment of VS*COMNTOOLS to resolve issues
  • initializing MSVC/MSVS/SDK issues.
  • Handle detecting Visual C++ on Python verions with upper-case
  • platform architectures like 'AMD64'.
  • Apply numerous Python fixers to update code to more modern idioms.
  • Find where fixers should be applied to code in test strings and
  • apply the fixers there, too.
  • Write a fixer to convert string functions to string methods.
  • Modify the 'dict' fixer to be less conservative.
  • Modify the 'apply' fixer to handle more cases.
  • Create a modified 'types' fixer that converts types to 2.x
  • equivalents rather than 3.x equivalents.
  • Write a 'division' fixer to highlight uses of the old-style
  • division operator. Correct usage where needed.
  • Add forward compatibility for the new 'memoryview' function
  • (which replaces the 'buffer' function).
  • Add forward compatibility for the 'winreg' module.
  • Remove no-longer-needed 'platform' module.
  • Run tests with the '-3' option to Python 2.6 and clear up
  • various reported incompatibilities.
  • Comb out code paths specialized to Pythons older than 2.4.
  • Update deprecation warnings; most now become mandatory.
  • Start deprecation cycle for BuildDir() and build_dir.
  • Start deprecation cycle for SourceCode() and related factories
  • Fixed a problem with is_Dict() not identifying some objects derived
  • from UserDict.
  • Document the AllowSubstExceptions() function in the User's Guide.
  • From William Deegan:
  • Migrate MSVC/MSVS/SDK improvements from 1.3 branch.

New in SCons 1.3.0 (Mar 26, 2010)

  • Update man page and documentation.
  • Support Visual Studio 8.0

New in SCons 1.2.0 (Dec 28, 2009)

  • Support for Python versions 1.5, 1.6, 2.0, 2.1, 2.2, and 2.3.
  • The overrides= keyword argument to the Builder() call.
  • The scanner= keyword argument to the Builder() call.
  • The BuildDir() function and env.BuildDir() method.
  • The env.Copy() method.
  • The SourceSignatures() function and
  • env.SourceSignatures() method.
  • The TargetSignatures() function and
  • env.TargetSignatures() method.
  • The Sig module (now an unnused stub).
  • The --debug=dtree, --debug=stree and --debug=tree options.
  • The --debug=nomemoizer option.
  • The Options object and the related BoolOption(),
  • EnumOption(), ListOption(), PackageOption() and
  • PathOption() functions.