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.