SCons Changelog

What's new in SCons 1.2.0.d20090223

Feb 24, 2009
  • Make suffix-matching for scanners case-insensitive on Windows.
  • Change the way SCons finds versions of Visual C/C++ and Visual Studio to find and use the Microsoft v*vars.bat files.
  • User's Guide updates.
  • Fix generation of Visual Studio 8 project files on x64 platforms.
  • Set IncludeSearchPath and PreprocessorDefinitions in generated Visual Studio 8 project files, to help IntelliSense work.
  • Fix deletion of broken symlinks by the --clean option.
  • Fix the error message when use of a non-existent drive on Windows is detected.
  • Add sources for files whose targets don't exist in $CHANGED_SOURCES.
  • Detect implicit dependencies on commands even when the command is quoted.
  • Fix interaction of $CHANGED_SOURCES with the --config=force option.
  • Fix finding #include files when the string contains escaped backslashes like "C:\some\include.h".
  • Pass $CCFLAGS to Visual C/C++ precompiled header compilation.
  • Remove unnecessary nested $( $) around $_LIBDIRFLAGS on link lines for the Microsoft linker, the OS/2 ilink linker and the Phar Lap linkloc linker.
  • Spell the Windows environment variables consistently "SystemDrive" and "SystemRoot" instead of "SYSTEMDRIVE" and "SYSTEMROOT".

New in SCons 1.2.0.d20090113 (Jan 14, 2009)

  • Add support for batch compilation of Visual Studio C/C++ source files, controlled by a new $MSVC_BATCH construction variable.
  • Print the message, "scons: Build interrupted." on error output, not standard output.
  • Add a --warn=future-deprecated option for advance warnings about deprecated features that still have warnings hidden by default.
  • Fix use of $SOURCE and $SOURCES attributes when there are no sources specified in the Builder call.
  • Add support for new $CHANGED_SOURCES, $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS variables.
  • Add general support for batch builds through new batch_key= and targets= keywords to Action object creation.
  • Make linker tools differentiate properly between SharedLibrary and LoadableModule.
  • Document TestCommon.shobj_prefix variable.
  • Support $SWIGOUTDIR values with spaces.
  • Don't automatically try to build .pdf graphics files for .eps files in includegraphics{} calls in TeX/LaTeX files when building with the PDF builder (and thus using pdflatex).
  • Allow AppendENVPath() and PrependENVPath() to interpret '#' for paths relative to the top-level SConstruct directory.
  • Use the Borland ilink -e option to specify the output file name.
  • Document that the msvc Tool module uses $PCH, $PCHSTOP and $PDB.
  • Allow WINDOWS_INSERT_DEF=0 to disable --output-def when linking under MinGW.
  • Fix typos in the User's Guide.
  • Support implicit dependency scanning of files encoded in utf-8 and utf-16.
  • Remove $CCFLAGS from the the default definitions of $CXXFLAGS for Visual C/C++ and MIPSpro C++ on SGI so, they match other tools and avoid flag duplication on C++ command lines.
  • Handle quoted module names in SWIG source files.
  • Copy file attributes so we identify, and can link a shared library from, shared object files in a Repository.

New in SCons 1.2.0 (Dec 22, 2008)

  • Don't fail if can't import a _subprocess module on Windows.
  • Add warnings for use of the deprecated Options object.

New in SCons 1.1.0 D2 (Nov 6, 2008)

  • Improve the robustness of GetBuildFailures() by refactoring SCons exception handling (especially BuildError exceptions).
  • Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool.
  • Handle Java inner classes declared within a method.
  • Fix label placement by the "scons-time.py func" subcommand when a profile value was close to (or equal to) 0.0.
  • Fix env.Append() and env.Prepend()'s ability to add a string to list-like variables like $CCFLAGS under Python 2.6.
  • Other Python2.6 portability: don't use "as" (a Python 2.6 keyword). Don't use the deprecated Exception.message attribute.
  • Support using the -f option to search for a different top-level file name when walking up with the -D, -U or -u options.
  • Fix use of VariantDir when the -n option is used and doesn't, therefore, actually create the variant directory.
  • Fix a stack trace from the --debug=includes option when passed a static or shared library as an argument.
  • Speed up the internal find_file() function (used for searching CPPPATH, LIBPATH, etc.).
  • Scan for TeX files in the paths specified in the $TEXINPUTS construction variable and the $TEXINPUTS environment variable.
  • Configure the PDF() and PostScript() Builders as single_source so they know each source file generates a separate target file.
  • Add $EPSTOPDF, $EPSTOPDFFLAGS and $EPSTOPDFCOM
  • Add .tex as a valid extension for the PDF() builder.
  • Add regular expressions to find input, include and includegraphics.
  • Support generating a .pdf file from a .eps source.
  • Recursive scan included input TeX files.
  • Make the Action() function handle positional parameters consistently.

New in SCons 1.1.0 (Oct 11, 2008)

  • Use the specified environment when checking for the GCC compiler version.
  • Fix Glob() polluting LIBPATH by returning copy of list
  • Add CheckCC, CheckCXX, CheckSHCC and CheckSHCXX tests to configuration contexts.
  • Have the --profile= argument use the much faster cProfile module (if it's available in the running Python version).
  • Reorder MSVC compilation arguments so the /Fo is first.
  • Add scanning Windows resource (.rc) files for implicit dependencies.
  • When scanning for a #include file, don't use a directory that has the same name as the file.
  • Suppress error output when checking for the GCC compiler version.
  • Fix VariantDir duplication of #included files in subdirectories.
  • Reduce memory usage when a directory is used as a dependency of another Node (such as an Alias) by returning a concatenation of the children's signatures + names, not the children's contents, as the directory contents.
  • Raise AttributeError, not KeyError, when a Builder can't be found.
  • Invalidate cached Node information (such as the contenst returned by the get_contents() method) when calling actions with Execute().
  • Avoid object reference cycles from frame objects.
  • Reduce memory usage from Null Executor objects.
  • Compute MD5 checksums of large files without reading the entire file contents into memory. Add a new --md5-chunksize option to control the size of each chunk read into memory.
  • Fix the ability of the add_src_builder() method to add a new source builder to any other builder.
  • Avoid an infinite loop on non-Windows systems trying to find the SCons library directory if the Python library directory does not begin with the string "python".
  • Search for the SCons library directory in "scons-local" (with no version number) after "scons-local-{VERSION}".
  • Fix the user's ability to interrupt the TeX build chain.
  • Fix the TeX builder's allowing the user to specify the target name, instead of always using its default output name based on the source.
  • Iterate building TeX output files until all warning are gone and the auxiliary files stop changing, or until we reach the (configurable) maximum number of retries.
  • Add TeX scanner support for: glossaries, nomenclatures, lists of figures, lists of tables, hyperref and beamer.
  • Use the $BIBINPUTS, $BSTINPUTS, $TEXINPUTS and $TEXPICTS construction variables as search paths for the relevant types of input file.
  • Fix building TeX with VariantDir(duplicate=0) in effect.
  • Fix the LaTeX scanner to search for graphics on the TEXINPUTS path.
  • Have the PDFLaTeX scanner search for .gif files as well.
  • Fix typos and format bugs in the man page.
  • Add a first draft of a wrapper module for Python's subprocess module.
  • Refactor use of the SCons.compat module so other modules don't have to import it individually.
  • Add .sx as a suffix for assembly language files that use the C preprocessor.
  • Make Glob() sort the returned list of Files or Nodes to prevent spurious rebuilds.
  • Add a delete_existing keyword argument to the AppendENVPath() and PrependENVPath() Environment methods.
  • Add ability to use "$SOURCE" when specifying a target to a builder
  • Add a test case to verify that SConsignFile() files can be created in previously non-existent subdirectories.
  • Make the subdirectory in which the SConsignFile() file will live, if the subdirectory doesn't already exist.
  • Add a test to verify duplication of files in VariantDir subdirectories.