diff options
Diffstat (limited to '3rdParty/SCons/scons-2.4.0/CHANGES.txt')
-rw-r--r-- | 3rdParty/SCons/scons-2.4.0/CHANGES.txt | 5899 |
1 files changed, 0 insertions, 5899 deletions
diff --git a/3rdParty/SCons/scons-2.4.0/CHANGES.txt b/3rdParty/SCons/scons-2.4.0/CHANGES.txt deleted file mode 100644 index 5f96a23..0000000 --- a/3rdParty/SCons/scons-2.4.0/CHANGES.txt +++ /dev/null @@ -1,5899 +0,0 @@ - - - SCons - a software construction tool - - Change Log - -RELEASE 2.4.0 - Mon, 21 Sep 2015 09:07:51 -0700 - - From Dirk Baechle: - - Switched several core classes to use "slots", to - reduce the overall memory consumption in large - projects (fixes #2180, #2178, #2198) - - Memoizer counting uses decorators now, instead of - the old metaclasses approach. - - From Andrew Featherstone - - Fixed typo in SWIGPATH description - -RELEASE 2.3.6 - Mon, 31 Jul 2015 14:35:03 -0700 - - From Rob Smith: - - Added support for Visual Studio 2015 - -RELEASE 2.3.5 - Mon, 17 Jun 2015 21:07:32 -0700 - - From Stephen Pollard: - - Documentation fixes for libraries.xml and - builders-writing.xml (#2989 and #2990) - - From William Deegan: - - Extended docs for InstallVersionedLib/SharedLibrary, - and added SKIP_WIN_PACKAGES argument to build script - bootstrap.py (PR #230, #3002). - - From William Blevins: - - Fixed symlink support (PR #227, #2395). - - Updated debug-count test case (PR #229). - - From Alexey Klimkin: - - Fixed incomplete LIBS flattening and substitution in - Program scanner(PR #205, #2954). - - From Dirk Baechle: - - Added new method rentry_exists_on_disk to Node.FS (PR #193). - - From Russel Winder: - - Fixed several D tests under the different OS. - - Add support for f08 file extensions for Fortran 2008 code. - - From Anatoly Techtonik: - - Show --config choices if no argument is specified (PR #202). - - Fixed build crash when XML toolchain isn't installed, and - activated compression for ZIP archives. - - From Alexandre Feblot: - - Fix for VersionedSharedLibrary under 'sunos' platform. - - Fixed dll link with precompiled headers on MSVC 2012 - - Added an 'exclude' parameter to Glob() - - From Laurent Marchelli: - - Support for multiple cmdargs (one per variant) in VS project files. - - Various improvements for TempFileMunge class. - - Added an implementation for Visual Studio users files (PR #209). - - From Dan Pidcock: - - Added support for the 'PlatformToolset' tag in VS project files (#2978). - - From James McCoy: - - Added support for '-isystem' to ParseFlags. - -RELEASE 2.3.4 - Mon, 27 Sep 2014 12:50:35 -0400 - - From Bernhard Walle and Dirk Baechle: - - Fixed the interactive mode, in connection with - Configure contexts (#2971). - - From Anatoly Techtonik: - - Fix EnsureSConsVersion warning when running packaged version - - From Russel Winder: - - Fix D tools for building shared libraries - -RELEASE 2.3.3 - Sun, 24 Aug 2014 21:08:33 -0400 - - From Roland Stark: - - Fixed false line length calculation in the TempFileMunge class (#2970). - - From Gary Oberbrunner: - - Improve SWIG detection - - From Russel Winder: - - Fix regression on Windows in D language update - - From Anatoly Techtonik: - - Do not fail on EnsureSConsVersion when running from checkout - - From Kendrick Boyd and Rob Managan: - - Fixed the newglossary action to work with VariantDir (LaTeX). - - From Manuel Francisco Naranjo: - - Added a default for the BUILDERS environment variable, - to prevent not defined exception on a Clone(). - - From Andrew Featherstone: - - Added description of CheckTypeSize method (#1991). - - Fixed handling of CPPDEFINE var in Append() - for several list-dict combinations (#2900). - - From William Blevins: - - Added test for Java derived-source dependency tree generation. - - Added Copy Action symlink soft-copy support (#2395). - - Various contributions to the documentation (UserGuide). - -RELEASE 2.3.2 - - From veon on bitbucket: - - Fixed handling of nested ifs in CPP scanner PreProcessor class. - - From Michael Haubenwallner: - - Respect user's CC/CXX values; don't always overwrite in generate() - - Delegate linker Tool.exists() to CC/CXX Tool.exists(). - - From Amir Szekely: - - Fixed NoClean() for multi-target builders (#2353). - - From Russel Winder: - - Revamp of the D language support. Tools for DMD, GDC and LDC provided - and integrated with the C and C++ linking. NOTE: This is only tested - with D v2. Support for D v1 is now deprecated. - - From Paweł Tomulik: - - Fix SConf tests that write output - - From Gary Oberbrunner: - - get default RPM architecture more robustly when building RPMs - - From Shane Gannon: - - Support for Visual Studio 2013 (12.0) - - From Sye van der Veen: - - Support for Visual Studio 12.0Exp, and fixes for earlier MSVS - versions. - - From Anatoly Techtonik: - - Several improvements for running scons.py from source: - * engine files form source directory take priority over all other - importable versions - * message about scons.py running from source is removed to fix tests - that were failing because of this extra line in the output - * error message when SCons import fails now lists lookup paths - - Remove support for QMTest harness from runtest.py - - Remove RPM and m4 from default tools on Windows - - BitKeeper, CVS, Perforce, RCS, SCCS are deprecated from default - tools and will be removed in future SCons versions to speed up - SCons initialization (it will still be possible to use these tools - explicitly) - - From Dirk Baechle: - - Update XML doc editor configuration - - Fix: Allow varlist to be specified as list of strings for Actions (#2754) - - From Rob Managan: - - Updated the TeX builder to support use of the -synctex=1 - option and the files it creates. - - Updated the TeX builder to correctly clean auxiliary files when - the biblatex package is used. - -RELEASE 2.3.1 - - From Andrew Featherstone: - - Added support for EPUB output format to the DocBook tool. - - From Tom Tanner: - - Stop leaking file handles to subprocesses by switching to using subprocess - always. - - Allow multiple options to be specified with --debug=a,b,c - - Add support for a readonly cache (--cache-readonly) - - Always print stats if requested - - Generally try harder to print out a message on build errors - - Adds a switch to warn on missing targets - - Add Pseudo command to mark targets which should not exist after - they are built. - - From Bogdan Tenea: - - Check for 8.3 filenames on cygwin as well as win32 to make variant_dir work properly. - - From Alexandre Feblot: - - Make sure SharedLibrary depends on all dependent libs (by depending on SHLINKCOM) - - From Stefan Sperling: - - Fixed the setup of linker flags for a versioned SharedLibrary - under OpenBSD (#2916). - - From Antonio Cavallo: - - Improve error if Visual Studio bat file not found. - - From Manuel Francisco Naranjo: - - Allow Subst.Literal string objects to be compared with each other, - so they work better in AddUnique() and Remove(). - - From David Rothenberger: - - Added cyglink linker that uses Cygwin naming conventions for - shared libraries and automatically generates import libraries. - - From Dirk Baechle: - - Update bootstrap.py so it can be used from any dir, to run - SCons from a source (non-installed) dir. - - Count statistics of instances are now collected only when - the --debug=count command-line option is used (#2922). - - Added release_target_info() to File nodes, which helps to - reduce memory consumption in clean builds and update runs - of large projects. - - Fixed the handling of long options in the command-line - parsing (#2929). - - Fixed misspelled variable in intelc.py (#2928). - - From Gary Oberbrunner: - - Test harness: fail_test() can now print a message to help debugging. - - From Anatoly Techtonik: - - Require rpmbuild when building SCons package. - - Print full stack on certain errors, for debugging. - - Improve documentation for Textfile builder. - - From William Deegan: - - VS2012 & VS2010 Resolve initialization issues by adding path to reg.exe - in shell used to run batch files. - - MSVC Support fixed defaulting TARGET_ARCH to HOST_ARCH. It should be - None if not explicitly set. - - MSVC Fixed issue where if more than one Architectures compilers are - detected, it would take the last one found, and not the first. - - From Philipp Kraus: - - Added optional ZIPROOT to Zip tool. - - From Dirk Baechle: - - Replaced old SGML-based documentation toolchain with a more modern - approach, that also requires less external dependencies (programs and - Python packages). Added a customized Docbook XSD for strict validation of - all input XML files. - - From Luca Falavigna: - - Fixed spelling errors in MAN pages (#2897). - - From Michael McDougall: - - Fixed description of ignore_case for EnumVariable in the - MAN page (#2774). - -RELEASE 2.3.0 - Mon, 02 Mar 2013 13:22:29 -0400 - - From Anatoly Techtonik: - - 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 - - From Juan Lang: - - Fix WiX Tool to use .wixobj rather than .wxiobj for compiler output - - Support building with WiX releases after 2.0 - - From Alexey Klimkin: - - Fix nested LIBPATH expansion by flattening sequences in subst_path. - - From eyan on Bitbucket: - - Print target name with command execution time with --debug=time - - From Thomas Berg and Evgeny Podjachev: - - Fix subprocess spawning on Windows. Work around a Windows - bug that can crash python occasionally when using -jN. (#2449) - - From Dirk Baechle: - - 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) - - From Gary Oberbrunner: - - 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. - - From Rob Managan: - - 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. - -RELEASE 2.2.0 - Mon, 05 Aug 2012 15:37:48 +0000 - - From dubcanada on Bitbucket: - - Fix 32-bit Visual Express C++ on 64-bit Windows (generate 32-bit code) - - From Paweł Tomulik: - - Added gettext toolset - - Fixed FindSourceFiles to find final sources (leaf nodes). - - From Greg Ward: - - Allow Node objects in Java path (#2825) - - From Joshua Hughes: - - Make Windows not redefine builtin file as un-inheritable (#2857) - - Fix WINDOWS_INSERT_DEF on MinGW (Windows) (#2856) - - From smallbub on Bitbucket: - - Fix LINKCOMSTR, SHLINKCOMSTR, and LDMODULECOMSTR on Windows (#2833). - - From Mortoray: - - Make -s (silent mode) be silent about entering subdirs (#2976). - - Fix cloning of builders when cloning environment (#2821). - - From Gary Oberbrunner: - - Show valid Visual Studio architectures in error message - when user passes invalid arch. - - From Alexey Petruchik: - - Support for Microsoft Visual Studio 11 (both using it - and generating MSVS11 solution files). - - From Alexey Klimkin: - - Fixed the Taskmaster, curing spurious build failures in - multi-threaded runs (#2720). - - From Dirk Baechle: - - Improved documentation of command-line variables (#2809). - - Fixed scons-doc.py to properly convert main XML files (#2812). - - From Rob Managan: - - 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' - - From Arve Knudsen: - - Test for FORTRANPPFILESUFFIXES (#2129). - - -RELEASE 2.1.0 - Mon, 09 Sep 2011 20:54:57 -0700 - - From Anton Lazarev: - - 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 Bizoń: - - 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 Imran Fanaswala and 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 - - -RELEASE 2.0.1 - Mon, 15 Aug 2010 15:46:32 -0700 - - From Dirk Baechle: - - - Fix XML in documentation. - - 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. - - 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. - - -RELEASE 2.0.0.final.0 - Mon, 14 Jun 2010 22:01:37 -0700 - - From Dirk Baechle: - - - Fix XML in documentation. - - 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'. - - From W. Trevor King: - - - Revisions to README. - - From Greg Noel: - - - 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. - - From Jim Randall: - - - Document the AllowSubstExceptions() function in the User's Guide. - - From William Deegan: - - - Migrate MSVC/MSVS/SDK improvements from 1.3 branch. - - -RELEASE 1.3.0 - Tue, 23 Mar 2010 21:44:19 -0400 - - From Steven Knight: - - - Update man page and documentation. - - From William Deegan (plus minor patch from Gary Oberbrunner): - - - Support Visual Studio 8.0 Express - -RELEASE 1.2.0.d20100306 - Sat, 06 Mar 2010 16:18:33 -0800 - - From Luca Falavigna: - - - Fix typos in the man page. - - From Gottfried Ganssauge: - - - Support execution when SCons is installed via easy_install. - - From Steven Knight: - - - Make the messages for Configure checks of compilers consistent. - - - Issue an error message if a BUILDERS entry is not a Builder - object or a callable wrapper. - - From Rob Managan: - - - Update tex builder to handle the case where a \input{foo} - command tries to work with a directory named foo instead of the - file foo.tex. The builder now ignores a directory and continues - searching to find the correct file. Thanks to Lennart Sauerbeck - for the test case and initial patch - - Also allow the \include of files in subdirectories when variantDir - is used with duplicate=0. Previously latex would crash since - the directory in which the .aux file is written was not created. - Thanks to Stefan Hepp for finding this and part of the solution. - - From James Teh: - - Patches to fix some issues using MS SDK V7.0 - - From William Deegan: - - Lots of testing and minor patches to handle mixed MS VC and SDK - installations, as well as having only the SDK installed. - - -RELEASE 1.2.0.d20100117 - Sun, 17 Jan 2010 14:26:59 -0800 - - From Jim Randall: - - Fixed temp filename race condition on Windows with long cmd lines. - - From David Cournapeau: - - Fixed tryRun when sconf directory is in a variant dir. - - Do not add -fPIC for ifort tool on non-posix platforms (darwin and - windows). - - Fix bug 2294 (spurious CheckCC failures). - - Fix scons bootstrap process on windows 64 (wrong wininst name) - - From William Deegan: - - Final merge from vs_revamp branch to main - - - Added definition and usage of HOST_OS, HOST_ARCH, TARGET_OS, - TARGET_ARCH, currently only defined/used by Visual Studio - Compilers. This will be rolled out to other platforms/tools - in the future. - - - Add check for python >= 3.0.0 and exit gracefully. - For 1.3 python >= 1.5.2 and < 3.0.0 are supported - - - Fix bug 1944 - Handle non-existent .i file in swig emitter, previously - it would crash with an IOError exception. Now it will try to make an - educated guess on the module name based on the filename. - - From Lukas Erlinghagen: - - - Have AddOption() remove variables from the list of - seen-but-unknown variables (which are reported later). - - - An option name and aliases can now be specified as a tuple. - - From Hartmut Goebel: - - - Textfile builder. - - From Jared Grubb: - - - use "is/is not" in comparisons with None instead of "==" or "!=". - - From Jim Hunziker: - - - Avoid adding -gphobos to a command line multiple times - when initializing use of the DMD compiler. - - From Jason Kenney: - - - Sugguested HOST/TARGET OS/ARCH separation. - - From Steven Knight: - - - Fix the -n option when used with VariantDir(duplicate=1) - and the variant directory doesn't already exist. - - - Fix scanning of Unicode files for both UTF-16 endian flavors. - - - Fix a TypeError on #include of file names with Unicode characters. - - - Fix an exception if a null command-line argument is passed in. - - - Evaluate Requires() prerequisites before a Node's direct children - (sources and dependencies). - - From Greg Noel: - - - Remove redundant __metaclass__ initializations in Environment.py. - - - Correct the documentation of text returned by sconf.Result(). - - - Document that filenames with '.' as the first character are - ignored by Glob() by default (matching UNIX glob semantics). - - - Fix SWIG testing infrastructure to work on Mac OS X. - - - Restructure a test that occasionally hung so that the test would - detect when it was stuck and fail instead. - - - Substfile builder. - - From Gary Oberbrunner: - - - When reporting a target that SCons doesn't know how to make, - specify whether it's a File, Dir, etc. - - From Ben Webb: - - - Fix use of $SWIGOUTDIR when generating Python wrappers. - - - Add $SWIGDIRECTORSUFFIX and $SWIGVERSION construction variables. - - From Rob Managan: - - - Add -recorder flag to Latex commands and updated internals to - use the output to find files TeX creates. This allows the MiKTeX - installations to find the created files - - - Notify user of Latex errors that would get buried in the - Latex output - - - Remove LATEXSUFFIXES from environments that don't initialize Tex. - - - Add support for the glossaries package for glossaries and acronyms - - - Fix problem that pdftex, latex, and pdflatex tools by themselves did - not create the actions for bibtex, makeindex,... by creating them - and other environment settings in one routine called by all four - tex tools. - - - Fix problem with filenames of sideeffects when the user changes - the name of the output file from the latex default - - - Add scanning of files included in Latex by means of \lstinputlisting{} - Patch from Stefan Hepp. - - - Change command line for epstopdf to use --outfile= instead of -o - since this works on all platforms. - Patch from Stefan Hepp. - - - Change scanner to properly search for included file from the - directory of the main file instead of the file it is included from. - Also update the emitter to add the .aux file associated with - \include{filename} commands. This makes sure the required directories - if any are created for variantdir cases. - Half of the patch from Stefan Hepp. - -RELEASE 1.2.0.d20090223 - Mon, 23 Feb 2009 08:41:06 -0800 - - From Stanislav Baranov: - - - Make suffix-matching for scanners case-insensitive on Windows. - - From David Cournapeau: - - - Change the way SCons finds versions of Visual C/C++ and Visual - Studio to find and use the Microsoft v*vars.bat files. - - From Robert P. J. Day: - - - User's Guide updates. - - From Dan Eaton: - - - Fix generation of Visual Studio 8 project files on x64 platforms. - - From Allan Erskine: - - - Set IncludeSearchPath and PreprocessorDefinitions in generated - Visual Studio 8 project files, to help IntelliSense work. - - From Mateusz Gruca: - - - Fix deletion of broken symlinks by the --clean option. - - From Steven Knight: - - - 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". - - - -RELEASE 1.2.0.d20090113 - Tue, 13 Jan 2009 02:50:30 -0800 - - From Stanislav Baranov, Ted Johnson and Steven Knight: - - - Add support for batch compilation of Visual Studio C/C++ source - files, controlled by a new $MSVC_BATCH construction variable. - - From Steven Knight: - - - 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. - - From Arve Knudsen: - - - Make linker tools differentiate properly between SharedLibrary - and LoadableModule. - - - Document TestCommon.shobj_prefix variable. - - - Support $SWIGOUTDIR values with spaces. - - From Rob Managan: - - - 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). - - From Gary Oberbrunner: - - - 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. - - From Zia Sobhani: - - - Fix typos in the User's Guide. - - From Greg Spencer: - - - Support implicit dependency scanning of files encoded in utf-8 - and utf-16. - - From Roberto de Vecchi: - - - 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. - - From Ben Webb: - - - Handle quoted module names in SWIG source files. - - - Emit *_wrap.h when SWIG generates header file for directors - - From Matthew Wesley: - - - Copy file attributes so we identify, and can link a shared library - from, shared object files in a Repository. - - - -RELEASE 1.2.0 - Sat, 20 Dec 2008 22:47:29 -0800 - - From Steven Knight: - - - Don't fail if can't import a _subprocess module on Windows. - - - Add warnings for use of the deprecated Options object. - - - -RELEASE 1.1.0.d20081207 - Sun, 07 Dec 2008 19:17:23 -0800 - - From Benoit Belley: - - - Improve the robustness of GetBuildFailures() by refactoring - SCons exception handling (especially BuildError exceptions). - - - Have the --taskmastertrace= option print information about - individual Task methods, not just the Taskmaster control flow. - - - Eliminate some spurious dependency cycles by being more aggressive - about pruning pending children from the Taskmaster walk. - - - Suppress mistaken reports of a dependency cycle when a child - left on the pending list is a single Node in EXECUTED state. - - From David Cournapeau: - - - Fix $FORTRANMODDIRPREFIX for the ifort (Intel Fortran) tool. - - From Brad Fitzpatrick: - - - Don't pre-generate an exception message (which will likely be - ignored anyway) when an EntryProxy re-raises an AttributeError. - - From Jared Grubb: - - - Clean up coding style and white space in Node/FS.py. - - - Fix a typo in the documentation for $_CPPDEFFLAGS. - - - Issue 2401: Fix usage of comparisons with None. - - From Ludwig H�hne: - - - Handle Java inner classes declared within a method. - - From Steven Knight: - - - 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.). - - - Add support for using the Python "in" keyword on construction - environments (for example, if "CPPPATH" in env: ...). - - - Fix use of Glob() when a repository or source directory contains - an in-memory Node without a corresponding on-disk file or directory. - - - Add a warning about future reservation of $CHANGED_SOURCES, - $CHANGED_TARGETS, $UNCHANGED_SOURCES and $UNCHANGED_TARGETS. - - - Enable by default the existing warnings about setting the resource - $SOURCE, $SOURCES, $TARGET and $TARGETS variable. - - From Rob Managan: - - - 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. - - - Handle requiring searched-for TeX input graphics files to have - extensions (to avoid trying to build a .eps from itself, e.g.). - - From Greg Noel: - - - Make the Action() function handle positional parameters consistently. - - - Clarify use of Configure.CheckType(). - - - Make the File.{Dir,Entry,File}() methods create their entries - relative to the calling File's directory, not the SConscript - directory. - - - Use the Python os.devnull variable to discard error output when - looking for the $CC or $CXX version. - - - Mention LoadableModule() in the SharedLibrary() documentation. - - From Gary Oberbrunner: - - - Update the User's Guide to clarify use of the site_scons/ - directory and the site_init.py module. - - - Make env.AppendUnique() and env.PrependUnique remove duplicates - within a passed-in list being added, too. - - From Randall Spangler: - - - Fix Glob() so an on-disk file or directory beginning with '#' - doesn't throw an exception. - - - -RELEASE 1.1.0 - Thu, 09 Oct 2008 08:33:47 -0700 - - From Chris AtLee - - - Use the specified environment when checking for the GCC compiler - version. - - From Ian P. Cardenas: - - - Fix Glob() polluting LIBPATH by returning copy of list - - From David Cournapeau: - - - 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. - - From Bill Deegan: - - - Add scanning Windows resource (.rc) files for implicit dependencies. - - From John Gozde: - - - When scanning for a #include file, don't use a directory that - has the same name as the file. - - From Ralf W. Grosse-Kunstleve - - - Suppress error output when checking for the GCC compiler version. - - From Jared Grubb: - - - Fix VariantDir duplication of #included files in subdirectories. - - From Ludwig H�hne: - - - 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. - - From Steven Knight: - - - 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}". - - From Rob Managan: - - - 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. - - From Greg Noel: - - - 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. - - From Gary Oberbrunner: - - - 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 - - From Damyan Pepper: - - - Add a test case to verify that SConsignFile() files can be - created in previously non-existent subdirectories. - - From Jim Randall: - - - Make the subdirectory in which the SConsignFile() file will - live, if the subdirectory doesn't already exist. - - From Ali Tofigh: - - - Add a test to verify duplication of files in VariantDir subdirectories. - - - -RELEASE 1.0.1 - Sat, 06 Sep 2008 07:29:34 -0700 - - From Greg Noel: - - - Add a FindFile() section to the User's Guide. - - - Fix the FindFile() documentation in the man page. - - - Fix formatting errors in the Package() description in the man page. - - - Escape parentheses that appear within variable names when spawning - command lines using os.system(). - - - -RELEASE 1.0.0 - XXX - - From Jared Grubb: - - - Clear the Node state when turning a generic Entry into a Dir. - - From Ludwig H�hne: - - - Fix sporadic output-order failures in test/GetBuildFailures/parallel.py. - - - Document the ParseDepends() function in the User's Guide. - - From khomenko: - - - Create a separate description and long_description for RPM packages. - - From Steven Knight: - - - Document the GetLaunchDir() function in the User's Guide. - - - Have the env.Execute() method print an error message if the - executed command fails. - - - Add a script for creating a standard SCons development system on - Ubuntu Hardy. Rewrite subsidiary scripts for install Python and - SCons versions in Python (from shell). - - From Greg Noel: - - - Handle yacc/bison on newer Mac OS X versions creating file.hpp, - not file.cpp.h. - - - In RPCGEN tests, ignore stderr messages from older versions of - rpcgen on some versions of Mac OS X. - - - Fix typos in man page descriptions of Tag() and Package(), and in - the scons-time man page. - - - Fix documentation of SConf.CheckLibWithHeader and other SConf methods. - - - Update documentation of SConscript(variant_dir) usage. - - - Fix SWIG tests for (some versions of) Mac OS X. - - From Jonas Olsson: - - - Print the warning about -j on Windows being potentially unreliable if - the pywin32 extensions are unavailable or lack file handle operations. - - From Jim Randall: - - - Fix the env.WhereIs() method to expand construction variables. - - From Rogier Schouten: - - - Enable building of shared libraries with the Bordand ilink32 linker. - - - -RELEASE 1.0.0 - Sat, 09 Aug 2008 12:19:44 -0700 - - From Luca Falavigna: - - - Fix SCons man page indentation under Debian's man page macros. - - From Steven Knight: - - - Clarify the man page description of the SConscript(src_dir) argument. - - - User's Guide updates: - - - Document the BUILD_TARGETS, COMMAND_LINE_TARGETS and - DEFAULT_TARGETS variables. - - - Document the AddOption(), GetOption() and SetOption() functions. - - - Document the Requires() function; convert to the Variables - object, its UnknownOptions() method, and its associated - BoolVariable(), EnumVariable(), ListVariable(), PackageVariable() - and PathVariable() functions. - - - Document the Progress() function. - - - Reorganize the chapter and sections describing the different - types of environments and how they interact. Document the - SetDefault() method. Document the PrependENVPath() and - AppendENVPath() functions. - - - Reorganize the command-line arguments chapter. Document the - ARGLIST variable. - - - Collect some miscellaneous sections into a chapter about - configuring build output. - - - Man page updates: - - - Document suggested use of the Visual C/C++ /FC option to fix - the ability to double-click on file names in compilation error - messages. - - - Document the need to use Clean() for any SideEffect() files that - must be explicitly removed when their targets are removed. - - - Explicitly document use of Node lists as input to Dependency(). - - From Greg Noel: - - - Document MergeFlags(), ParseConfig(), ParseFlags() and SideEffect() - in the User's Guide. - - From Gary Oberbrunner: - - - Document use of the GetBuildFailures() function in the User's Guide. - - From Adam Simpkins: - - - Add man page text clarifying the behavior of AddPreAction() and - AddPostAction() when called with multiple targets. - - From Alexey Zezukin: - - - Fix incorrectly swapped man page descriptions of the --warn= options - for duplicate-environment and missing-sconscript. - - - -RELEASE 0.98.5 - Sat, 07 Jun 2008 08:20:35 -0700 - - From Benoit Belley: - - - Fix the Intel C++ compiler ABI specification for EMT64 processors. - - From David Cournapeau: - - - Issue a (suppressable) warning, not an error, when trying to link - C++ and Fortran object files into the same executable. - - From Steven Knight: - - - Update the scons.bat file so that it returns the real exit status - from SCons, even though it uses setlocal + endlocal. - - - Fix the --interactive post-build messages so it doesn't get stuck - mistakenly reporting failures after any individual build fails. - - - Fix calling File() as a File object method in some circumstances. - - - Fix setup.py installation on Mac OS X so SCons gets installed - under /usr/lcoal by default, not in the Mac OS X Python framework. - - - -RELEASE 0.98.4 - Sat, 17 May 2008 22:14:46 -0700 - - From Benoit Belley: - - - Fix calculation of signatures for Python function actions with - closures in Python versions before 2.5. - - From David Cournapeau: - - - Fix the initialization of $SHF77FLAGS so it includes $F77FLAGS. - - From Jonas Olsson: - - - Fix a syntax error in the Intel C compiler support on Windows. - - From Steven Knight: - - - Change how we represent Python Value Nodes when printing and when - stored in .sconsign files (to avoid blowing out memory by storing - huge strings in .sconsign files after multiple runs using Configure - contexts cause the Value strings to be re-escaped each time). - - - Fix a regression in not executing configuration checks after failure - of any configuration check that used the same compiler or other tool. - - - Handle multiple destinations in Visual Studio 8 settings for the - analogues to the INCLUDE, LIBRARY and PATH variables. - - From Greg Noel: - - - Update man page text for VariantDir(). - - - -RELEASE 0.98.3 - Tue, 29 Apr 2008 22:40:12 -0700 - - From Greg Noel: - - - Fix use of $CXXFLAGS when building C++ shared object files. - - From Steven Knight: - - - Fix a regression when a Builder's source_scanner doesn't select - a more specific scanner for the suffix of a specified source file. - - - Fix the Options object backwards compatibility so people can still - "import SCons.Options.{Bool,Enum,List,Package,Path}Option" submodules. - - - Fix searching for implicit dependencies when an Entry Node shows up - in the search path list. - - From Stefano: - - - Fix expansion of $FORTRANMODDIR in the default Fortran command line(s) - when it's set to something like ${TARGET.dir}. - - - -RELEASE 0.98.2 - Sun, 20 Apr 2008 23:38:56 -0700 - - From Steven Knight: - - - Fix a bug in Fortran suffix computation that would cause SCons to - run out of memory on Windows systems. - - - Fix being able to specify --interactive mode command lines with - \ (backslash) path name separators on Windows. - - From Gary Oberbrunner: - - - Document Glob() in the User's Guide. - - - -RELEASE 0.98.1 - Fri, 18 Apr 2008 19:11:58 -0700 - - From Benoit Belley: - - - Speed up the SCons.Util.to_string*() functions. - - - Optimize various Node intialization and calculations. - - - Optimize Executor scanning code. - - - Optimize Taskmaster execution, including dependency-cycle checking. - - - Fix the --debug=stree option so it prints its tree once, not twice. - - From Johan Boul�: - - - Fix the ability to use LoadableModule() under MinGW. - - From David Cournapeau: - - - Various missing Fortran-related construction variables have been added. - - - SCons now uses the program specified in the $FORTRAN construction - variable to link Fortran object files. - - - Fortran compilers on Linux (Intel, g77 and gfortran) now add the -fPIC - option by default when compilling shared objects. - - - New 'sunf77', 'sunf90' and 'sunf95' Tool modules have been added to - support Sun Fortran compilers. On Solaris, the Sun Fortran compilers - are used in preference to other compilers by default. - - - Fortran support now uses gfortran in preference to g77. - - - Fortran file suffixes are now configurable through the - $F77FILESUFFIXES, $F90FILESUFFIXES, $F95FILESUFFIXES and - $FORTRANFILESUFFIXES variables. - - From Steven Knight: - - - Make the -d, -e, -w and --no-print-directory options "Ignored for - compatibility." (We're not going to implement them.) - - - Fix a serious inefficiency in how SCons checks for whether any source - files are missing when a Builder call creates many targets from many - input source files. - - - In Java projects, make the target .class files depend only on the - specific source .java files where the individual classes are defined. - - - Don't store duplicate source file entries in the .sconsign file so - we don't endlessly rebuild the target(s) for no reason. - - - Add a Variables object as the first step towards deprecating the - Options object name. Similarly, add BoolVariable(), EnumVariable(), - ListVariable(), PackageVariable() and PathVariable() functions - as first steps towards replacing BoolOption(), EnumOption(), - ListOption(), PackageOption() and PathOption(). - - - Change the options= keyword argument to the Environment() function - to variables=, to avoid confusion with SCons command-line options. - Continue supporting the options= keyword for backwards compatibility. - - - When $SWIGFLAGS contains the -python flag, expect the generated .py - file to be in the same (sub)directory as the target. - - - When compiling C++ files, allow $CCFLAGS settings to show up on the - command line even when $CXXFLAGS has been redefined. - - - Fix --interactive with -u/-U/-D when a VariantDir() is used. - - From Anatoly Techtonik: - - - Have the scons.bat file add the script execution directory to its - local %PATH% on Windows, so the Python executable can be found. - - From Mike Wake: - - - Fix passing variable names as a list to the Return() function. - - From Matthew Wesley: - - - Add support for the GDC 'D' language compiler. - - - -RELEASE 0.98 - Sun, 30 Mar 2008 23:33:05 -0700 - - From Benoit Belley: - - - Fix the --keep-going flag so it builds all possible targets even when - a later top-level target depends on a child that failed its build. - - - Fix being able to use $PDB and $WINDWOWS_INSERT_MANIFEST together. - - - Don't crash if un-installing the Intel C compiler leaves left-over, - dangling entries in the Windows registry. - - - Improve support for non-standard library prefixes and suffixes by - stripping all prefixes/suffixes from file name string as appropriate. - - - Reduce the default stack size for -j worker threads to 256 Kbytes. - Provide user control over this value by adding --stack-size and - --warn=stack-size options, and a SetOption('stack_size') function. - - - Fix a crash on Linux systems when trying to use the Intel C compiler - and no /opt/intel_cc_* directories are found. - - - Improve using Python functions as actions by incorporating into - a FunctionAction's signature: - - literal values referenced by the byte code. - - values of default arguments - - code of nested functions - - values of variables captured by closures - - names of referenced global variables and functions - - - Fix the closing message when --clean and --keep-going are both - used and no errors occur. - - - Add support for the Intel C compiler on Mac OS X. - - - Speed up reading SConscript files by about 20% (for some - configurations) by: 1) optimizing the SCons.Util.is_*() and - SCons.Util.flatten() functions; 2) avoiding unnecessary os.stat() - calls by using a File's .suffix attribute directly instead of - stringifying it. - - From Jérôme Berger: - - - Have the D language scanner search for .di files as well as .d files. - - - Add a find_include_names() method to the Scanner.Classic class to - abstract out how included names can be generated by subclasses. - - - Allow the D language scanner to detect multiple modules imported by - a single statement. - - From Konstantin Bozhikov: - - - Support expansion of construction variables that contain or refer - to lists of other variables or Nodes within expansions like $CPPPATH. - - - Change variable substitution (the env.subst() method) so that an - input sequence (list or tuple) is preserved as a list in the output. - - From David Cournapeau: - - - Add a CheckDeclaration() call to configure contexts. - - - Improve the CheckTypeSize() code. - - - Add a Define() call to configure contexts, to add arbitrary #define - lines to a generated configure header file. - - - Add a "gfortran" Tool module for the GNU F95/F2003 compiler. - - - Avoid use of -rpath with the Mac OS X linker. - - - Add comment lines to the generated config.h file to describe what - the various #define/#undef lines are doing. - - From Steven Knight: - - - Support the ability to subclass the new-style "str" class as input - to Builders. - - - Improve the performance of our type-checking by using isinstance() - with new-style classes. - - - Fix #include (and other $*PATH variables searches) of files with - absolute path names. Don't die if they don't exist (due to being - #ifdef'ed out or the like). - - - Fix --interactive mode when Default(None) is used. - - - Fix --debug=memoizer to work around a bug in base Python 2.2 metaclass - initialization (by just not allowing Memoization in Python versions - that have the bug). - - - Have the "scons-time time" subcommand handle empty log files, and - log files that contain no results specified by the --which option. - - - Fix the max Y of vertical bars drawn by "scons-time --fmt=gnuplot". - - - On Mac OS X, account for the fact that the header file generated - from a C++ file will be named (e.g.) file.cpp.h, not file.hpp. - - - Fix floating-point numbers confusing the Java parser about - generated .class file names in some configurations. - - - Document (nearly) all the values you can now fetch with GetOption(). - - - Fix use of file names containing strings of multiple spaces when - using ActionFactory instances like the Copy() or Move() function. - - - Fix a 0.97 regression when using a variable expansion (like - $OBJSUFFIX) in a source file name to a builder with attached source - builders that match suffix (like Program()+Object()). - - - Have the Java parser recognize generics (surrounded by angle brackets) - so they don't interfere with identifying anonymous inner classes. - - - Avoid an infinite loop when trying to use saved copies of the - env.Install() or env.InstallAs() after replacing the method - attributes. - - - Improve the performance of setting construction variables. - - - When cloning a construction environment, avoid over-writing an - attribute for an added method if the user explicitly replaced it. - - - Add a warning about deprecated support for Python 1.5, 2.0 and 2.1. - - - Fix being able to SetOption('warn', ...) in SConscript files. - - - Add a warning about env.Copy() being deprecated. - - - Add warnings about the --debug={dtree,stree,tree} options - being deprecated. - - - Add VariantDir() as the first step towards deprecating BuildDir(). - Add the keyword argument "variant_dir" as the replacement for - "build_dir". - - - Add warnings about the {Target,Source}Signatures() methods and - functions being deprecated. - - From Rob Managan: - - - Enhance TeX and LaTeX support to work with BuildDir(duplicate=0). - - - Re-run LaTeX when it issues a package warning that it must be re-run. - - From Leanid Nazdrynau: - - - Have the Copy() action factory preserve file modes and times - when copying individual files. - - From Jan Nijtmans: - - - If $JARCHDIR isn't set explicitly, use the .java_classdir attribute - that was set when the Java() Builder built the .class files. - - From Greg Noel: - - - Document the Dir(), File() and Entry() methods of Dir and File Nodes. - - - Add the parse_flags option when creating Environments - - From Gary Oberbrunner: - - - Make File(), Dir() and Entry() return a list of Nodes when passed - a list of names, instead of trying to make a string from the name - list and making a Node from that string. - - - Fix the ability to build an Alias in --interactive mode. - - - Fix the ability to hash the contents of actions for nested Python - functions on Python versions where the inability to pickle them - returns a TypeError (instead of the documented PicklingError). - - From Jonas Olsson: - - - Fix use of the Intel C compiler when the top compiler directory, - but not the compiler version, is specified. - - - Handle Intel C compiler network license files (port@system). - - From Jim Randall: - - - Fix how Python Value Nodes are printed in --debug=explain output. - - From Adam Simpkins: - - - Add a --interactive option that starts a session for building (or - cleaning) targets without re-reading the SConscript files every time. - - - Fix use of readline command-line editing in --interactive mode. - - - Have the --interactive mode "build" command with no arguments - build the specified Default() targets. - - - Fix the Chmod(), Delete(), Mkdir() and Touch() Action factories to - take a list (of Nodes or strings) as arguments. - - From Vaclav Smilauer: - - - Fix saving and restoring an Options value of 'all' on Python - versions where all() is a builtin function. - - From Daniel Svensson: - - - Code correction in SCons.Util.is_List(). - - From Ben Webb: - - - Support the SWIG %module statement with following modifiers in - parenthese (e.g., '%module(directors="1")'). - - - -RELEASE 0.97.0d20071212 - Wed, 12 Dec 2007 09:29:32 -0600 - - From Benoit Belley: - - - Fix occasional spurious rebuilds and inefficiency when using - --implicit-cache and Builders that produce multiple targets. - - - Allow SCons to not have to know about the builders of generated - files when BuildDir(duplicate=0) is used, potentially allowing some - SConscript files to be ignored for smaller builds. - - From David Cournapeau: - - - Add a CheckTypeSize() call to configure contexts. - - From Ken Deeter: - - - Make the "contents" of Alias Nodes a concatenation of the children's - content signatures (MD5 checksums), not a concatenation of the - children's contents, to avoid using large amounts of memory during - signature calculation. - - From Malte Helmert: - - - Fix a lot of typos in the man page and User's Guide. - - From Geoffrey Irving: - - - Speed up conversion of paths in .sconsign files to File or Dir Nodes. - - From Steven Knight: - - - Add an Options.UnknownOptions() method that returns any settings - (from the command line, or whatever dictionary was passed in) - that aren't known to the Options object. - - - Add a Glob() function. - - - When removing targets with the -c option, use the absolute path (to - avoid problems interpreting BuildDir() when the top-level directory - is the source directory). - - - Fix problems with Install() and InstallAs() when called through a - clone (of a clone, ...) of a cloned construction environment. - - - When executing a file containing Options() settings, add the file's - directory to sys.path (so modules can be imported from there) and - explicity set __name__ to the name of the file so the statement's - in the file can deduce the location if they need to. - - - Fix an O(n^2) performance problem when adding sources to a target - through calls to a multi Builder (including Aliases). - - - Redefine the $WINDOWSPROGMANIFESTSUFFIX and - $WINDOWSSHLIBMANIFESTSUFFIX variables so they pick up changes to - the underlying $SHLIBSUFFIX and $PROGSUFFIX variables. - - - Add a GetBuildFailures() function that can be called from functions - registered with the Python atexit module to print summary information - about any failures encountered while building. - - - Return a NodeList object, not a Python list, when a single_source - Builder like Object() is called with more than one file. - - - When searching for implicit dependency files in the directories - in a $*PATH list, don't create Dir Nodes for directories that - don't actually exist on-disk. - - - Add a Requires() function to allow the specification of order-only - prerequisites, which will be updated before specified "downstream" - targets but which don't actually cause the target to be rebuilt. - - - Restore the FS.{Dir,File,Entry}.rel_path() method. - - - Make the default behavior of {Source,Target}Signatures('timestamp') - be equivalent to 'timestamp-match', not 'timestamp-newer'. - - - Fix use of CacheDir with Decider('timestamp-newer') by updating - the modification time when copying files from the cache. - - - Fix random issues with parallel (-j) builds on Windows when Python - holds open file handles (especially for SCons temporary files, - or targets built by Python function actions) across process creation. - - From Maxim Kartashev: - - - Fix test scripts when run on Solaris. - - From Gary Oberbrunner: - - - Fix Glob() when a pattern is in an explicitly-named subdirectory. - - From Philipp Scholl: - - - Fix setting up targets if multiple Package builders are specified - at once. - - - -RELEASE 0.97.0d20070918 - Tue, 18 Sep 2007 10:51:27 -0500 - - From Steven Knight: - - - Fix the wix Tool module to handle null entries in $PATH variables. - - - Move the documentation of Install() and InstallAs() from the list - of functions to the list of Builders (now that they're implemented - as such). - - - Allow env.CacheDir() to be set per construction environment. The - global CacheDir() function now sets an overridable global default. - - - Add an env.Decider() method and a Node.Decider() method that allow - flexible specification of an arbitrary function to decide if a given - dependency has changed since the last time a target was built. - - - Don't execute Configure actions (while reading SConscript files) - when cleaning (-c) or getting help (-h or -H). - - - Add to each target an implicit dependency on the external command(s) - used to build the target, as found by searching env['ENV']['PATH'] - for the first argument on each executed command line. - - - Add support for a $IMPLICIT_COMMAND_DEPENDENCIES construction - variabe that can be used to disable the automatic implicit - dependency on executed commands. - - - Add an "ensure_suffix" keyword to Builder() definitions that, when - true, will add the configured suffix to the targets even if it looks - like they already have a different suffix. - - - Add a Progress() function that allows for calling a function or string - (or list of strings) to display progress while walking the DAG. - - - Allow ParseConfig(), MergeFlags() and ParseFlags() to handle output - from a *config command with quoted path names that contain spaces. - - - Make the Return() function stop processing the SConscript file and - return immediately. Add a "stop=" keyword argument that can be set - to False to preserve the old behavior. - - - Fix use of exitstatfunc on an Action. - - - Introduce all man page function examples with "Example:" or "Examples:". - - - When a file gets added to a directory, make sure the directory gets - re-scanned for the new implicit dependency. - - - Fix handling a file that's specified multiple times in a target - list so that it doesn't cause dependent Nodes to "disappear" from - the dependency graph walk. - - From Carsten Koch: - - - Avoid race conditions with same-named files and directory creation - when pushing copies of files to CacheDir(). - - From Tzvetan Mikov: - - - Handle $ in Java class names. - - From Gary Oberbrunner: - - - Add support for the Intel C compiler on Windows64. - - - On SGI IRIX, have $SHCXX use $CXX by default (like other platforms). - - From Sohail Somani: - - - When Cloning a construction environment, set any variables before - applying tools (so the tool module can access the configured settings) - and re-set them after (so they end up matching what the user set). - - From Matthias Troffaes: - - - Make sure extra auxiliary files generated by some LaTeX packages - and not ending in .aux also get deleted by scons -c. - - From Greg Ward: - - - Add a $JAVABOOTCLASSPATH variable for directories to be passed to the - javac -bootclasspath option. - - From Christoph Wiedemann: - - - Add implicit dependencies on the commands used to build a target. - - - - -RELEASE 0.97.0d20070809 - Fri, 10 Aug 2007 10:51:27 -0500 - - From Lars Albertsson: - - - Don't error if a #include line happens to match a directory - somewhere on a path (like $CPPPATH, $FORTRANPATH, etc.). - - From Mark Bertoglio: - - - Fix listing multiple projects in Visual Studio 7.[01] solution files, - including generating individual project GUIDs instead of re-using - the solution GUID. - - From Jean Brouwers: - - - Add /opt/SUNWspro/bin to the default execution PATH on Solaris. - - From Allan Erskine: - - - Only expect the Microsoft IDL compiler to emit *_p.c and *_data.c - files if the /proxy and /dlldata switches are used (respectively). - - From Steven Knight: - - - Have --debug=explain report if a target is being rebuilt because - AlwaysBuild() is specified (instead of "unknown reasons"). - - - Support {Get,Set}Option('help') to make it easier for SConscript - files to tell if a help option (-h, --help, etc.) has been specified. - - - Support {Get,Set}Option('random') so random-dependency interaction - with CacheDir() is controllable from SConscript files. - - - Add a new AddOption() function to support user-defined command- - line flags (like --prefix=, --force, etc.). - - - Replace modified Optik version with new optparse compatibility module - for command line processing in Scripts/SConsOptions.py - - - Push and retrieve built symlinks to/from a CacheDir() as actual - symlinks, not by copying the file contents. - - - Fix how the Action module handles stringifying the shared library - generator in the Tool/mingw.py module. - - - When generating a config.h file, print "#define HAVE_{FEATURE} 1" - instad of just "#define HAVE_{FEATURE}", for more compatibility - with Autoconf-style projects. - - - Fix expansion of $TARGET, $TARGETS, $SOURCE and $SOURCES keywords in - Visual C/C++ PDB file names. - - - Fix locating Visual C/C++ PDB files in build directories. - - - Support an env.AddMethod() method and an AddMethod() global function - for adding a new method, respectively, to a construction environment - or an arbitrary object (such as a class). - - - Fix the --debug=time option when the -j option is specified and all - files are up to date. - - - Add a $SWIGOUTDIR variable to allow setting the swig -outdir option, - and use it to identify files created by the swig -java option. - - - Add a $SWIGPATH variable that specifies the path to be searched - for included SWIG files, Also add related $SWIGINCPREFIX and - $SWIGINCSUFFIX variables that specify the prefix and suffix to - be be added to each $SWIGPATH directory when expanded on the SWIG - command line. - - - More efficient copying of construction environments (mostly borrowed - from copy.deepcopy() in the standard Python library). - - - When printing --tree=prune output, don't print [brackets] around - source files, only do so for built targets with children. - - - Fix interpretation of Builder source arguments when the Builder has - a src_suffix *and* a source_builder and the argument has no suffix. - - - Fix use of expansions like ${TARGET.dir} or ${SOURCE.dir} in the - following construction variables: $FORTRANMODDIR, $JARCHDIR, - $JARFLAGS, $LEXFLAGS, $SWIGFLAGS, $SWIGOUTDIR and $YACCFLAGS. - - - Fix dependencies on Java files generated by SWIG so they can be - detected and built in one pass. - - - Fix SWIG when used with a BuildDir(). - - From Leanid Nazdrynau: - - - When applying Tool modules after a construction environment has - already been created, don't overwrite existing $CFILESUFFIX and - $CXXFILESUFFIX value. - - - Support passing the Java() builder a list of explicit .java files - (not only a list of directories to be scanned for .java files). - - - Support passing .java files to the Jar() and JavaH() builders, which - then use the builder underlying the Java() builder to turn them into - .class files. (That is, the Jar()-Java() chain of builders become - multi-step, like the Program()-Object()-CFile() builders.) - - - Support passing SWIG .i files to the Java builders (Java(), - Jar(), JavaH()), to cause intermediate .java files to be created - automatically. - - - Add $JAVACLASSPATH and $JAVASOURCEPATH variables, that get added to - the javac "-classpath" and "-sourcepath" options. (Note that SCons - does *not* currently search these paths for implicit dependencies.) - - - Commonize initialization of Java-related builders. - - From Jan Nijtmans: - - - Find Java anonymous classes when the next token after the name is - an open parenthesis. - - From Gary Oberbrunner: - - - Fix a code example in the man page. - - From Tilo Prutz: - - - Add support for the file names that Java 1.5 (and 1.6) generates for - nested anonymous inner classes, which are different from Java 1.4. - - From Adam Simpkins: - - - Allow worker threads to terminate gracefully when all jobs are - finished. - - From Sohail Somani: - - - Add LaTeX scanner support for finding dependencies specified with - the \usepackage{} directive. - - - -RELEASE 0.97 - Thu, 17 May 2007 08:59:41 -0500 - - From Steven Knight: - - - Fix a bug that would make parallel builds stop in their tracks if - Nodes that depended on lists that contained some Nodes built together - caused the reference count to drop below 0 if the Nodes were visited - and commands finished in the wrong order. - - - Make sure the DirEntryScanner doesn't choke if it's handed something - that's not a directory (Node.FS.Dir) Node. - - - -RELEASE 0.96.96 - Thu, 12 Apr 2007 12:36:25 -0500 - - NOTE: This is (Yet) a(nother) pre-release of 0.97 for testing purposes. - - From Joe Bloggs: - - - Man page fix: remove cut-and-paste sentence in NoCache() description. - - From Dmitry Grigorenko and Gary Oberbrunner: - - - Use the Intel C++ compiler, not $CC, to link C++ source. - - From Helmut Grohne: - - - Fix the man page example of propagating a user's external environment. - - From Steven Knight: - - - Back out (most of) the Windows registry installer patch, which - seems to not work on some versions of Windows. - - - Don't treat Java ".class" attributes as defining an inner class. - - - Fix detecting an erroneous Java anonymous class when the first - non-skipped token after a "new" keyword is a closing brace. - - - Fix a regression when a CPPDEFINES list contains a tuple, the second - item of which (the option value) is a construction variable expansion - (e.g. $VALUE) and the value of the variable isn't a string. - - - Improve the error message if an IOError (like trying to read a - directory as a file) occurs while deciding if a node is up-to-date. - - - Fix "maximum recursion" / "unhashable type" errors in $CPPPATH - PathList expansion if a subsidiary expansion yields a stringable, - non-Node object. - - - Generate API documentation from the docstrings (using epydoc). - - - Fix use of --debug=presub with Actions for out-of-the-box Builders. - - - Fix handling nested lists within $CPPPATH, $LIBPATH, etc. - - - Fix a "builders_used" AttributeError that real-world Qt initialization - triggered in the refactored suffix handling for Builders. - - - Make the reported --debug=time timings meaningful when used with -j. - Better documentation of what the times mean. - - - User Guide updates: --random, AlwaysBuild(), --tree=, - --debug=findlibs, --debug=presub, --debug=stacktrace, - --taskmastertrace. - - - Document (in both man page and User's Guide) that --implicit-cache - ignores changes in $CPPPATH, $LIBPATH, etc. - - From Jean-Baptiste Lab: - - - Remove hard-coded dependency on Python 2.2 from Debian packaging files. - - From Jeff Mahovsky: - - - Handle spaces in the build target name in Visual Studio project files. - - From Rob Managan: - - - Re-run LaTeX after BibTeX has been re-run in response to a changed - .bib file. - - From Joel B. Mohler: - - - Make additional TeX auxiliary files (.toc, .idx and .bbl files) - Precious so their removal doesn't affect whether the necessary - sections are included in output PDF or PostScript files. - - From Gary Oberbrunner: - - - Fix the ability to import modules in the site_scons directory from - a subdirectory. - - From Adam Simpkins: - - - Make sure parallel (-j) builds all targets even if they show up - multiple times in the child list (as a source and a dependency). - - From Matthias Troffaes: - - - Don't re-run TeX if the triggering strings (\makeindex, \bibliography - \tableofcontents) are commented out. - - From Richard Viney: - - - Fix use of custom include and lib paths with Visual Studio 8. - - - Select the default .NET Framework SDK Dir based on the version of - Visual Studio being used. - - - -RELEASE 0.96.95 - Mon, 12 Feb 2007 20:25:16 -0600 - - From Anatoly Techtonik: - - - Add the scons.org URL and a package description to the setup.py - arguments. - - - Have the Windows installer add a registry entry for scons.bat in the - "App Paths" key, so scons.bat can be executed without adding the - directory to the %PATH%. (Python itself works this way.) - - From Anonymous: - - - Fix looking for default paths in Visual Studio 8.0 (and later). - - - Add -lm to the list of default D libraries for linking. - - From Matt Doar: - - - Provide a more complete write-your-own-Scanner example in the man page. - - From Ralf W. Grosse-Kunstleve: - - - Contributed upstream Python change to our copied subprocess.py module - for more efficient standard input processing. - - From Steven Knight: - - - Fix the Node.FS.Base.rel_path() method when the two nodes are on - different drive letters. (This caused an infinite loop when - trying to write .sconsign files.) - - - Fully support Scanners that use a dictionary to map file suffixes - to other scanners. - - - Support delayed evaluation of the $SPAWN variable to allow selection - of a function via ${} string expansions. - - - Add --srcdir as a synonym for -Y/--repository. - - - Document limitations of #include "file.h" with Repository(). - - - Fix use of a toolpath under the source directory of a BuildDir(). - - - Fix env.Install() with a file name portion that begins with '#'. - - - Fix ParseConfig()'s handling of multiple options in a string that's - replaced a *FLAGS construction variable. - - - Have the C++ tools initialize common C compilation variables ($CCFLAGS, - $SHCCFLAGS and $_CCCOMCOM) even if the 'cc' Tool isn't loaded. - - From Leanid Nazdrynau: - - - Fix detection of Java anonymous classes if a newline precedes the - opening brace. - - From Gary Oberbrunner: - - - Document use of ${} to execute arbitrary Python code. - - - Add support for: - 1) automatically adding a site_scons subdirectory (in the top-level - SConstruct directory) to sys.path (PYTHONPATH); - 2) automatically importing site_scons/site_init.py; - 3) automatically adding site_scons/site_tools to the toolpath. - - From John Pye: - - - Change ParseConfig() to preserve white space in arguments passed in - as a list. - - From a smith: - - - Fix adding explicitly-named Java inner class files (and any - other file names that may contain a '$') to Jar files. - - From David Vitek: - - - Add a NoCache() function to mark targets as unsuitable for propagating - to (or retrieving from) a CacheDir(). - - From Ben Webb: - - - If the swig -noproxy option is used, it won't generate a .py file, - so don't emit it as a target that we expect to be built. - - - -RELEASE 0.96.94 - Sun, 07 Jan 2007 18:36:20 -0600 - - NOTE: This is a pre-release of 0.97 for testing purposes. - - From Anonymous: - - - Allow arbitrary white space after a SWIG %module declaration. - - From Paul: - - - When compiling resources under MinGW, make sure there's a space - between the --include-dir option and its argument. - - From Jay Kint: - - - Alleviate long command line issues on Windows by executing command - lines directly via os.spawnv() if the command line doesn't need - shell interpretation (has no pipes, redirection, etc.). - - From Walter Franzini: - - - Exclude additional Debian packaging files from the copyright check. - - From Fawad Halim: - - - Handle the conflict between the impending Python 2.6 'as' keyword - and our Tool/as.py module name. - - From Steven Knight: - - - Speed up the Node.FS.Dir.rel_path() method used to generate path names - that get put into the .sconsign* file(s). - - - Optimize Node.FS.Base.get_suffix() by computing the suffix once, up - front, when we set the Node's name. (Duh...) - - - Reduce the Memoizer's responsibilities to simply counting hits and - misses when the --debug=memoizer option is used, not to actually - handling the key calculation and memoization itself. This speeds - up some configurations significantly, and should cause no functional - differences. - - - Add a new scons-time script with subcommands for generating - consistent timing output from SCons configurations, extracting - various information from those timings, and displaying them in - different formats. - - - Reduce some unnecessary stat() calls from on-disk entry type checks. - - - Fix SideEffect() when used with -j, which was badly broken in 0.96.93. - - - Propagate TypeError exceptions when evaluating construction variable - expansions up the stack, so users can see what's going on. - - - When disambiguating a Node.FS.Entry into a Dir or File, don't look - in the on-disk source directory until we've confirmed there's no - on-disk entry locally and there *is* one in the srcdir. This avoids - creating a phantom Node that can interfere with dependencies on - directory contents. - - - Add an AllowSubstExceptions() function that gives the SConscript - files control over what exceptions cause a string to expand to '' - vs. terminating processing with an error. - - - Allow the f90.py and f95.py Tool modules to compile earlier source - source files of earlier Fortran version. - - - Fix storing signatures of files retrieved from CacheDir() so they're - correctly identified as up-to-date next invocation. - - - Make sure lists of computed source suffixes cached by Builder objects - don't persist across changes to the list of source Builders (so the - addition of suffixes like .ui by the qt.py Tool module take effect). - - - Enhance the bootstrap.py script to allow it to be used to execute - SCons more easily from a checked-out source tree. - - From Ben Leslie: - - - Fix post-Memoizer value caching misspellings in Node.FS._doLookup(). - - From Rob Managan, Dmitry Mikhin and Joel B. Mohler: - - - Handle TeX/LaTeX files in subdirectories by changing directory - before invoking TeX/LaTeX. - - - Scan LaTeX files for \bibliography lines. - - - Support multiple file names in a "\bibliography{file1,file2}" string. - - - Handle TeX warnings about undefined citations. - - - Support re-running LaTeX if necessary due to a Table of Contents. - - From Dmitry Mikhin: - - - Return LaTeX if "Rerun to get citations correct" shows up on the next - line after the "Warning:" string. - - From Gary Oberbrunner: - - - Add #include lines to fix portability issues in two tests. - - - Eliminate some unnecessary os.path.normpath() calls. - - - Add a $CFLAGS variable for C-specific options, leaving $CCFLAGS - for options common to C and C++. - - From Tom Parker: - - - Have the error message print the missing file that Qt can't find. - - From John Pye: - - - Fix env.MergeFlags() appending to construction variable value of None. - - From Steve Robbins: - - - Fix the "sconsign" script when the .sconsign.dblite file is explicitly - specified on the command line (and not intuited from the old way of - calling it with just ".sconsign"). - - From Jose Pablo Ezequiel "Pupeno" Fernandez Silva: - - - Give the 'lex' tool knowledge of the additional target files produced - by the flex "--header-file=" and "--tables-file=" options. - - - Give the 'yacc' tool knowledge of the additional target files produced - by the bison "-g", "--defines=" and "--graph=" options. - - - Generate intermediate files with Objective C file suffixes (.m) when - the lex and yacc source files have appropriate suffixes (.lm and .ym). - - From Sohail Somain: - - - Have the mslink.py Tool only look for a 'link' executable on Windows - systems. - - From Vaclav Smilauer: - - - Add support for a "srcdir" keyword argument when calling a Builder, - which will add a srcdir prefix to all non-relative string sources. - - From Jonathan Ultis: - - - Allow Options converters to take the construction environment as - an optional argument. - - - -RELEASE 0.96.93 - Mon, 06 Nov 2006 00:44:11 -0600 - - NOTE: This is a pre-release of 0.97 for testing purposes. - - From Anonymous: - - - Allow Python Value Nodes to be Builder targets. - - From Matthias: - - - Only filter Visual Studio common filename prefixes on complete - directory names. - - From Chad Austin: - - - Fix the build of the SCons documentation on systems that don't - have "python" in the $PATH. - - From Ken Boortz: - - - Enhance ParseConfig() to recognize options that begin with '+'. - - From John Calcote, Elliot Murphy: - - - Document ways to override the CCPDBFLAGS variable to use the - Microsoft linker's /Zi option instead of the default /Z7. - - From Christopher Drexler: - - - Make SCons aware bibtex must be called if any \include files - cause creation of a bibliography. - - - Make SCons aware that "\bilbiography" in TeX source files means - that related .bbl and .blg bibliography files will be created. - (NOTE: This still needs to search for the string in \include files.) - - From David Gruener: - - - Fix inconsistent handling of Action strfunction arguments. - - - Preserve white space in display Action strfunction strings. - - From James Y. Knight and Gerard Patel: - - - Support creation of shared object files from assembly language. - - From Steven Knight: - - - Speed up the Taskmaster significantly by avoiding unnecessary - re-scans of Nodes to find out if there's work to be done, having it - track the currently-executed top-level target directly and not - through its presence on the target list, and eliminating some other - minor list(s), method(s) and manipulation. - - - Fix the expansion of $TARGET and $SOURCE in the expansion of - $INSTALLSTR displayed for non-environment calls to InstallAs(). - - - Fix the ability to have an Alias() call refer to a directory - name that's not identified as a directory until later. - - - Enhance runtest.py with an option to use QMTest as the harness. - This will become the default behavior as we add more functionality - to the QMTest side. - - - Let linking on mingw use the default function that chooses $CC (gcc) - or $CXX (g++) depending on whether there are any C++ source files. - - - Work around a bug in early versions of the Python 2.4 profile module - that caused the --profile= option to fail. - - - Only call Options validators and converters once when initializing a - construction environment. - - - Fix the ability of env.Append() and env.Prepend(), in all known Python - versions, to handle different input value types when the construction - variable being updated is a dictionary. - - - Add a --cache-debug option for information about what files it's - looking for in a CacheDir(). - - - Document the difference in construction variable expansion between - {Action,Builder}() and env.{Action,Builder}(). - - - Change the name of env.Copy() to env.Clone(), keeping the old name - around for backwards compatibility (with the intention of eventually - phasing it out to avoid confusion with the Copy() Action factory). - - From Arve Knudsen: - - - Support cleaning and scanning SWIG-generated files. - - From Carsten Koch: - - - Allow selection of Visual Studio version by setting $MSVS_VERSION - after construction environment initialization. - - From Jean-Baptiste Lab: - - - Try using zipimport if we can't import Tool or Platform modules - using the normal "imp" module. This allows SCons to be packaged - using py2exe's all-in-one-zip-file approach. - - From Ben Liblit: - - - Do not re-scan files if the scanner returns no implicit dependencies. - - From Sanjoy Mahajan: - - - Change use of $SOURCES to $SOURCE in all TeX-related Tool modules. - - From Joel B. Mohler: - - - Make SCons aware that "\makeindex" in TeX source files means that - related .ilg, .ind and .idx index files will be created. - (NOTE: This still needs to search for the string in \include files.) - - - Prevent scanning the TeX .aux file for additional files from - trying to remove it twice when the -c option is used. - - From Leanid Nazdrynau: - - - Give the MSVC RES (resource) Builder a src_builder list and a .rc - src_suffix so other builders can generate .rc files. - - From Matthew A. Nicholson: - - - Enhance Install() and InstallAs() to handle directory trees as sources. - - From Jan Nijtmans: - - - Don't use the -fPIC flag when using gcc on Windows (e.g. MinGW). - - From Greg Noel: - - - Add an env.ParseFlags() method that provides separate logic for - parsing GNU tool chain flags into a dictionary. - - - Add an env.MergeFlags() method to apply an arbitrary dictionary - of flags to a construction environment's variables. - - From Gary Oberbrunner: - - - Fix parsing tripartite Intel C compiler version numbers on Linux. - - - Extend the ParseConfig() function to recognize -arch and - -isysroot options. - - - Have the error message list the known suffixes when a Builder call - can't build a source file with an unknown suffix. - - From Karol Pietrzak: - - - Avoid recursive calls to main() in the program snippet used by the - SConf subsystem to test linking against libraries. This changes the - default behavior of CheckLib() and CheckLibWithHeader() to print - "Checking for C library foo..." instead of "Checking for main() - in C library foo...". - - From John Pye: - - - Throw an exception if a command called by ParseConfig() or - ParseFlags() returns an error. - - From Stefan Seefeld: - - - Initial infrastructure for running SCons tests under QMTest. - - From Sohail Somani: - - - Fix tests that fail due to gcc warnings. - - From Dobes Vandermeer: - - - In stack traces, print the full paths of SConscript files. - - From Atul Varma: - - - Fix detection of Visual C++ Express Edition. - - From Dobes Vandermeer: - - - Let the src_dir option to the SConscript() function affect all the - the source file paths, instead of treating all source files paths - as relative to the SConscript directory itself. - - From Nicolas Vigier: - - - Fix finding Fortran modules in build directories. - - - Fix use of BuildDir() when the source file in the source directory - is a symlink with a relative path. - - From Edward Wang: - - - Fix the Memoizer when the SCons Python modules are executed from - .pyo files at different locations from where they were compiled. - - From Johan Zander: - - - Fix missing os.path.join() when constructing the $FRAMEWORKSDKDIR/bin. - - - -RELEASE 0.96.92 - Mon, 10 Apr 2006 21:08:22 -0400 - - NOTE: This was a pre-release of 0.97 for testing purposes. - - From Anonymous: - - - Fix the intelc.py Tool module to not throw an exception if the - only installed version is something other than ia32. - - - Set $CCVERSION when using gcc. - - From Matthias: - - - Support generating project and solution files for Microsoft - Visual Studio version 8. - - - Support generating more than one project file for a Microsoft - Visual Studio solution file. - - - Add support for a support "runfile" parameter to Microsoft - Visual Studio project file creation. - - - Put the project GUID, not the solution GUID, in the right spot - in the solution file. - - From Erling Andersen: - - - Fix interpretation of Node.FS objects wrapped in Proxy instances, - allowing expansion of things like ${File(TARGET)} in command lines. - - From Stanislav Baranov: - - - Add a separate MSVSSolution() Builder, with support for the - following new construction variables: $MSVSBUILDCOM, $MSVSCLEANCOM, - $MSVSENCODING, $MSVSREBUILDCOM, $MSVSSCONS, $MSVSSCONSCOM, - $MSVSSCONSFLAGS, $MSVSSCONSCRIPT and $MSVSSOLUTIONCOM. - - From Ralph W. Grosse-Kunstleve and Patrick Mezard: - - - Remove unneceesary (and incorrect) SCons.Util strings on some function - calls in SCons.Util. - - From Bob Halley: - - - Fix C/C++ compiler selection on AIX to not always use the external $CC - environment variable. - - From August Hörandl: - - - Add a scanner for \include and \import files, with support for - searching a directory list in $TEXINPUTS (imported from the external - environment). - - - Support $MAKEINDEX, $MAKEINDEXCOM, $MAKEINDEXCOMSTR and - $MAKEINDEXFLAGS for generating indices from .idx files. - - From Steven Johnson: - - - Add a NoClean() Environment method and function to override removal - of targets during a -c clean, including documentation and tests. - - From Steven Knight: - - - Check for whether files exist on disk by listing the directory - contents, not calling os.path.exists() file by file. This is - somewhat more efficient in general, and may be significantly - more efficient on Windows. - - - Minor speedups in the internal is_Dict(), is_List() and is_String() - functions. - - - Fix a signature refactoring bug that caused Qt header files to - get re-generated every time. - - - Don't fail when writing signatures if the .sconsign.dblite file is - owned by a different user (e.g. root) from a previous run. - - - When deleting variables from stacked OverrideEnvironments, don't - throw a KeyError if we were able to delte the variable from any - Environment in the stack. - - - Get rid of the last indentation tabs in the SCons source files and - add -tt to the Python invocations in the packaging build and the - tests so they don't creep back in. - - - In Visual Studio project files, put quotes around the -C directory - so everything works even if the path has spaces in it. - - - The Intel Fortran compiler uses -object:$TARGET, not "-o $TARGET", - when building object files on Windows. Have the the ifort Tool - modify the default command lines appropriately. - - - Document the --debug=explain option in the man page. (How did we - miss this?) - - - Add a $LATEXRETRIES variable to allow configuration of the number of - times LaTex can be re-called to try to resolve undefined references. - - - Change the order of the arguments to Configure.Checklib() to match - the documentation. - - - Handle signature calculation properly when the Python function used - for a FunctionAction is an object method. - - - On Windows, assume that absolute path names without a drive letter - refer to the drive on which the SConstruct file lives. - - - Add /usr/ccs/bin to the end of the the default external execution - PATH on Solaris. - - - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching - for the SunPRO C++ compiler. Make the default value for $PKGCHK - be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external - execution $PATH). - - - Fix a man page example of overriding variables when calling - SharedLibrary() to also set the $LIBSUFFIXES variable. - - - Add a --taskmastertrace=FILE option to give some insight on how - the taskmaster decides what Node to build next. - - - Changed the names of the old $WIN32DEFPREFIX, $WIN32DEFSUFFIX, - $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX construction variables to - new $WINDOWSDEFPREFIX, $WINDOWSDEFSUFFIX, $WINDOWSDLLPREFIX and - $WINDOWSIMPLIBPREFIX construction variables. The old names are now - deprecated, but preserved for backwards compatibility. - - - Fix (?) a runtest.py hang on Windows when the --xml option is used. - - - Change the message when an error occurs trying to interact with the - file system to report the target(s) in square brackets (as before) and - the actual file or directory that encountered the error afterwards. - - From Chen Lee: - - - Add x64 support for Microsoft Visual Studio 8. - - From Baptiste Lepilleur: - - - Support the --debug=memory option on Windows when the Python version - has the win32process and win32api modules. - - - Add support for Visual Studio 2005 Pro. - - - Fix portability issues in various tests: test/Case.py, - Test/Java/{JAR,JARCHDIR,JARFLAGS,JAVAC,JAVACFLAGS,JAVAH,RMIC}.py, - test/MSVS/vs-{6.0,7.0,7.1,8.0}-exec.py, - test/Repository/{Java,JavaH,RMIC}.py, - test/QT/{generated-ui,installed,up-to-date,warnings}.py, - test/ZIP/ZIP.py. - - - Ignore pkgchk errors on Solaris when searching for the C++ compiler. - - - Speed up the SCons/EnvironmentTests.py unit tests. - - - Add a --verbose= option to runtest.py to print executed commands - and their output at various levels. - - From Christian Maaser: - - - Add support for Visual Studio Express Editions. - - - Add support for Visual Studio 8 *.manifest files, includng - new $WINDOWS_INSERT_MANIFEST, $WINDOWSPROGMANIFESTSUFFIX, - $WINDOWSPROGMANIFESTPREFIX, $WINDOWSPROGMANIFESTSUFFIX, - $WINDOWSSHLIBMANIFESTPREFIX and $WINDOWSSHLIBMANIFESTSUFFIX - construction variables. - - From Adam MacBeth: - - - Fix detection of additional Java inner classes following use of a - "new" keyword inside an inner class. - - From Sanjoy Mahajan: - - - Correct TeX-related command lines to just $SOURCE, not $SOURCES - - From Patrick Mezard: - - - Execute build commands for a command-line target if any of the - files built along with the target is out of date or non-existent, - not just if the command-line target itself is out of date. - - - Fix the -n option when used with -c to print all of the targets - that will be removed for a multi-target Builder call. - - - If there's no file in the source directory, make sure there isn't - one in the build directory, too, to avoid dangling files left - over from previous runs when a source file is removed. - - - Allow AppendUnique() and PrependUnique() to append strings (and - other atomic objects) to lists. - - From Joel B. Mohler: - - - Extend latex.py, pdflatex.py, pdftex.py and tex.py so that building - from both TeX and LaTeX files uses the same logic to call $BIBTEX - when it's necessary, to call $MAKEINDEX when it's necessary, and to - call $TEX or $LATEX multiple times to handle undefined references. - - - Add an emitter to the various TeX builders so that the generated - .aux and .log files also get deleted by the -c option. - - From Leanid Nazdrynau: - - - Fix the Qt UIC scanner to work with generated .ui files (by using - the FindFile() function instead of checking by-hand for the file). - - From Jan Nieuwenhuizen: - - - Fix a problem with interpreting quoted argument lists on command lines. - - From Greg Noel: - - - Add /sw/bin to the default execution PATH on Mac OS X. - - From Kian Win Ong: - - - When building a .jar file and there is a $JARCHDIR, put the -C - in front of each .class file on the command line. - - - Recognize the Java 1.5 enum keyword. - - From Asfand Yar Qazi: - - - Add /opt/bin to the default execution PATH on all POSIX platforms - (between /usr/local/bin and /bin). - - From Jon Rafkind: - - - Fix the use of Configure() contexts from nested subsidiary - SConscript files. - - From Christoph Schulz: - - - Add support for $CONFIGUREDIR and $CONFIGURELOG variables to control - the directory and logs for configuration tests. - - - Add support for a $INSTALLSTR variable. - - - Add support for $RANLIBCOM and $RANLIBCOMSTR variables (which fixes - a bug when setting $ARCOMSTR). - - From Amir Szekely: - - - Add use of $CPPDEFINES to $RCCOM (resource file compilation) on MinGW. - - From Erick Tryzelaar: - - - Fix the error message when trying to report that a given option is - not gettable/settable from an SConscript file. - - From Dobes Vandermeer: - - - Add support for SCC and other settings in Microsoft Visual - Studio project and solution files: $MSVS_PROJECT_BASE_PATH, - $MSVS_PROJECT_GUID, $MSVS_SCC_AUX_PATH, $MSVS_SCC_LOCAL_PATH, - $MSVS_SCC_PROJECT_NAME, $MSVS_SCC_PROVIDER, - - - Add support for using a $SCONS_HOME variable (imported from the - external environment, or settable internally) to put a shortened - SCons execution line in the Visual Studio project file. - - From David J. Van Maren: - - - Only filter common prefixes from source files names in Visual Studio - project files if the prefix is a complete (sub)directory name. - - From Thad Ward: - - - If $MSVSVERSIONS is already set, don't overwrite it with - information from the registry. - - - -RELEASE 0.96.91 - Thu, 08 Sep 2005 07:18:23 -0400 - - NOTE: This was a pre-release of 0.97 for testing purposes. - - From Chad Austin: - - - Have the environment store the toolpath and re-use it to find Tools - modules during later Copy() or Tool() calls (unless overridden). - - - Normalize the directory path names in SConsignFile() database - files so the same signature file can interoperate on Windows and - non-Windows systems. - - - Make --debug=stacktrace print a stacktrace when a UserError is thrown. - - - Remove an old, erroneous cut-and-paste comment in Scanner/Dir.py. - - From Stanislav Baranov: - - - Make it possible to support with custom Alias (sub-)classes. - - - Allow Builders to take empty source lists when called. - - - Allow access to both TARGET and SOURCE in $*PATH expansions. - - - Allow SConscript files to modify BUILD_TARGETS. - - From Timothee Besset: - - - Add support for Objective C/C++ .m and .mm file suffixes (for - Mac OS X). - - From Charles Crain - - - Fix the PharLap linkloc.py module to use target+source arguments - when calling env.subst(). - - From Bjorn Eriksson: - - - Fix an incorrect Command() keyword argument in the man page. - - - Add a $TEMPFILEPREFIX variable to control the prefix or flag used - to pass a long-command-line-execution tempfile to a command. - - From Steven Knight: - - - Enhanced the SCons setup.py script to install man pages on - UNIX/Linux systems. - - - Add support for an Options.FormatOptionHelpText() method that can - be overridden to customize the format of Options help text. - - - Add a global name for the Entry class (which had already been - documented). - - - Fix re-scanning of generated source files for implicit dependencies - when the -j option is used. - - - Fix a dependency problem that caused $LIBS scans to not be added - to all of the targets in a multiple-target builder call, which - could cause out-of-order builds when the -j option is used. - - - Store the paths of source files and dependencies in the .sconsign* - file(s) relative to the target's directory, not relative to the - top-level SConstruct directory. This starts to make it possible to - subdivide the dependency tree arbitrarily by putting an SConstruct - file in every directory and using content signatures. - - - Add support for $YACCHFILESUFFIX and $YACCHXXFILESUFFIX variables - that accomodate parser generators that write header files to a - different suffix than the hard-coded .hpp when the -d option is used. - - - The default behavior is now to store signature information in a - single .sconsign.dblite file in the top-level SConstruct directory. - The old behavior of a separate .sconsign file in each directory can - be specified by calling SConsignFile(None). - - - Remove line number byte codes within the signature calculation - of Python function actions, so that changing the location of an - otherwise unmodified Python function doesn't cause rebuilds. - - - Fix AddPreAction() and AddPostAction() when an action has more than - one target file: attach the actions to the Executor, not the Node. - - - Allow the source directory of a BuildDir / build_dir to be outside - of the top-level SConstruct directory tree. - - - Add a --debug=nomemoizer option that disables the Memoizer for clearer - looks at the counts and profiles of the underlying function calls, - not the Memoizer wrappers. - - - Print various --debug= stats even if we exit early (e.g. using -h). - - - Really only use the cached content signature value if the file - is older than --max-drift, not just if --max-drift is set. - - - Remove support for conversion from old (pre 0.96) .sconsign formats. - - - Add support for a --diskcheck option to enable or disable various - on-disk checks: that File and Dir nodes match on-disk entries; - whether an RCS file exists for a missing source file; whether an - SCCS file exists for a missing source file. - - - Add a --raw argument to the sconsign script, so it can print a - raw representation of each entry's NodeInfo dictionary. - - - Add the 'f90' and 'f95' tools to the list of Fortran compilers - searched for by default. - - - Add the +Z option by default when compiling shared objects on - HP-UX. - - From Chen Lee: - - - Handle Visual Studio project and solution files in Unicode. - - From Sanjoy Mahajan: - - - Fix a bad use of Copy() in an example in the man page, and a - bad regular expression example in the man page and User's Guide. - - From Shannon Mann: - - - Have the Visual Studio project file(s) echo "Starting SCons" before - executing SCons, mainly to work around a quote-stripping bug in - (some versions of?) the Windows cmd command executor. - - From Georg Mischler: - - - Remove the space after the -o option when invoking the Borland - BCC compiler; some versions apparently require that the file name - argument be concatenated with the option. - - From Leanid Nazdrynau: - - - Fix the Java parser's handling of backslashes in strings. - - From Greg Noel: - - - Add construction variables to support frameworks on Mac OS X: - $FRAMEWORKS, $FRAMEWORKPREFIX, $FRAMEWORKPATH, $FRAMEWORKPATHPREFIX. - - - Re-order link lines so the -o option always comes right after the - command name. - - From Gary Oberbrunner: - - - Add support for Intel C++ beta 9.0 (both 32 and 64 bit versions). - - - Document the new $FRAMEWORK* variables for Mac OS X. - - From Karol Pietrzak: - - - Add $RPATH (-R) support to the Sun linker Tool (sunlink). - - - Add a description of env.subst() to the man page. - - From Chris Prince: - - - Look in the right directory, not always the local directory, for a - same-named file or directory conflict on disk. - - - On Windows, preserve the external environment's %SYSTEMDRIVE% - variable, too. - - From Craig Scott: - - - Have the Fortran module emitter look for Fortan modules to be created - relative to $FORTRANMODDIR, not the top-level directory. - - - When saving Options to a file, run default values through the - converter before comparing them with the set values. This correctly - suppresses Boolean Option values from getting written to the saved - file when they're one of the many synonyms for a default True or - False value. - - - Fix the Fortran Scanner's ability to handle a module being used - in the same file in which it is defined. - - From Steve-o: - - - Add the -KPIC option by default when compiling shared objects on - Solaris. - - - Change the default suffix for Solaris objects to .o, to conform to - Sun WorkShop's expectations. Change the profix to so_ so they can - still be differentiated from static objects in the same directory. - - From Amir Szekely: - - - When calling the resource compiler on MinGW, add --include-dir and - the source directory so it finds the source file. - - - Update EnsureSConsVersion() to support revision numbers. - - From Greg Ward: - - - Fix a misplaced line in the man page. - - - -RELEASE 0.96.90 - Tue, 15 Feb 2005 21:21:12 +0000 - - NOTE: This was a pre-release of 0.97 for testing purposes. - - From Anonymous: - - - Fix Java parsing to avoid erroneously identifying a new array - of class instances as an anonymous inner class. - - - Fix a typo in the man page description of PathIsDirCreate. - - From Chad Austin: - - - Allow Help() to be called multiple times, appending to the help - text each call. - - - Allow Tools found on a toolpath to import Python modules from - their local directory. - - From Steve Christensen: - - - Handle exceptions from Python functions as build actions. - - - Add a set of canned PathOption validators: PathExists (the default), - PathIsFile, PathIsDir and PathIsDirCreate. - - From Matthew Doar: - - - Add support for .lex and .yacc file suffixes for Lex and Yacc files. - - From Eric Frias: - - - Huge performance improvement: wrap the tuples representing an - include path in an object, so that the time it takes to hash the - path doesn't grow porportionally to the length of the path. - - From Gottfried Ganssauge: - - - Fix SCons on SuSE/AMD-64 Linux by having the wrapper script also - check for the build engine in the parent directory of the Python - library directory (/usr/lib64 instead of /usr/lib). - - From Stephen Kennedy: - - - Speed up writing the .sconsign file at the end of a run by only - calling sync() once at the end, not after every entry. - - From Steven Knight: - - - When compiling with Microsoft Visual Studio, don't include the ATL and - MFC directories in the default INCLUDE and LIB environment variables. - - - Remove the following deprecated features: the ParseConfig() - global function (deprecated in 0.93); the misspelled "validater" - keyword to the Options.Add() method (deprecated in 0.91); the - SetBuildSignatureType(), SetContentSignatureType(), SetJobs() and - GetJobs() global functions (deprecated in 0.14). - - - Fix problems with corrupting the .sconsign.dblite file when - interrupting builds by writing to a temporary file and renaming, - not writing the file directly. - - - Fix a 0.96 regression where when running with -k, targets built from - walking dependencies later on the command line would not realize - that a dependency had failed an earlier build attempt, and would - try to rebuild the dependent targets. - - - Change the final messages when using -k and errors occur from - "{building,cleaning} terminated because of errors" to "done - {building,cleaning} targets (errors occurred during {build,clean})." - - - Allow Configure.CheckFunc() to take an optional header argument - (already supported by Conftest.py) to specify text at the top of - the compiled test file. - - - Fix the --debug=explain output when a Python function action changed - so it prints a meaningful string, not the binary representation of - the function contents. - - - Allow a ListOption's default value(s) to be a Python list of specified - values, not just a string containing a comma-separated list of names. - - - Add a ParseDepends() function that will parse up a list of explicit - dependencies from a "make depend" style file. - - - Support the ability to change directory when executing an Action - through "chdir" keyword arguments to Action and Builder creation - and calls. - - - Fix handling of Action ojects (and other callables that don't match - our calling arguments) in construction variable expansions. - - - On Win32, install scons.bat in the Python directory when installing - from setup.py. (The bdist_wininst installer was already doing this.) - - - Fix env.SConscript() when called with a list of SConscipt files. - (The SConscript() global function already worked properly.) - - - Add a missing newline to the end of the --debug=explain "unknown - reasons" message. - - - Enhance ParseConfig() to work properly for spaces in between the -I, - -L and -l options and their arguments. - - - Packaging build fix: Rebuild the files that are use to report the - --version of SCons whenever the development version number changes. - - - Fix the ability to specify a target_factory of Dir() to a Builder, - which the default create-a-directory Builder was interfering with. - - - Mark a directory as built if it's created as part of the preparation - for another target, to avoid trying to build it again when it comes - up in the target list. - - - Allow a function with the right calling signature to be put directly - in an Environment's BUILDERS dictionary, making for easier creation - and use of wrappers (pseudo-Builders) that call other Builders. - - - On Python 2.x, wrap lists of Nodes returned by Builders in a UserList - object that adds a method that makes str() object return a string - with all of the Nodes expanded to their path names. (Builders under - Python 1.5.2 still return lists to avoid TypeErrors when trying - to extend() list, so Python 1.5.2 doesn't get pretty-printing of Node - lists, but everything should still function.) - - - Allow Aliases to have actions that will be executed whenever - any of the expanded Alias targets are out of date. - - - Fix expansion of env.Command() overrides within target and - source file names. - - - Support easier customization of what's displayed by various default - actions by adding lots of new construction variables: $ARCOMSTR, - $ASCOMSTR, $ASPPCOMSTR, $BIBTEXCOMSTR, $BITKEEPERCOMSTR, $CCCOMSTR, - $CVSCOMSTR, $CXXCOMSTR, $DCOMSTR, $DVIPDFCOMSTR, $F77COMSTR, - $F90COMSTR, $F95COMSTR, $FORTRANCOMSTR, $GSCOMSTR, $JARCOMSTR, - $JAVACCOMSTR, $JAVAHCOMSTR, $LATEXCOMSTR, $LEXCOMSTR, $LINKCOMSTR, - $M4COMSTR, $MIDLCOMSTR, $P4COMSTR, $PCHCOMSTR, $PDFLATEXCOMSTR, - $PDFTEXCOMSTR, $PSCOMSTR, $QT_MOCFROMCXXCOMSTR, $QT_MOCFROMHCOMSTR, - $QT_UICCOMSTR, $RCCOMSTR, $REGSVRCOMSTR, $RCS_COCOMSTR, $RMICCOMSTR, - $SCCSCOMSTR, $SHCCCOMSTR, $SHCXXCOMSTR, $SHF77COMSTR, $SHF90COMSTR, - $SHF95COMSTR, $SHFORTRANCOMSTR, $SHLINKCOMSTR, $SWIGCOMSTR, - $TARCOMSTR, $TEXCOMSTR, $YACCCOMSTR and $ZIPCOMSTR. - - - Add an optional "map" keyword argument to ListOption() that takes a - dictionary to map user-specified values to legal values from the list - (like EnumOption() already doee). - - - Add specific exceptions to try:-except: blocks without any listed, - so that they won't catch and mask keyboard interrupts. - - - Make --debug={tree,dtree,stree} print something even when there's - a build failure. - - - Fix how Scanners sort the found dependencies so that it doesn't - matter whether the dependency file is in a Repository or not. - This may cause recompilations upon upgrade to this version. - - - Make AlwaysBuild() work with Alias and Python value Nodes (making - it much simpler to support aliases like "clean" that just invoke - an arbitrary action). - - - Have env.ParseConfig() use AppendUnique() by default to suppress - duplicate entries from multiple calls. Add a "unique" keyword - argument to allow the old behavior to be specified. - - - Allow the library modules imported by an SConscript file to get at - all of the normally-available global functions and variables by saying - "from SCons.Script import *". - - - Add a --debug=memoizer option to print Memoizer hit/mass statistics. - - - Allow more than one --debug= option to be set at a time. - - - Change --debug=count to report object counts before and after - reading SConscript files and before and after building targets. - - - Change --debug=memory output to line up the numbers and to better - match (more or less) the headers on the --debug=count columns. - - - Speed things up when there are lists of targets and/or sources by - getting rid of some N^2 walks of the lists involved. - - - Cache evaluation of LazyActions so we don't create a new object - for each invocation. - - - When scanning, don't create Nodes for include files that don't - actually exist on disk. - - - Make supported global variables CScanner, DScanner, ProgramScanner and - SourceFileScanner. Make SourceFileScanner.add_scanner() a supported - part of the public interface. Keep the old SCons.Defaults.*Scan names - around for a while longer since some people were already using them. - - - By default, don't scan directories for on-disk files. Add a - DirScanner global scanner that can be used in Builders or Command() - calls that want source directory trees scanned for on-disk changes. - Have the Tar() and Zip() Builders use the new DirScanner to preserve - the behavior of rebuilding a .tar or .zip file if any file or - directory under a source tree changes. Add Command() support for - a source_scanner keyword argument to Command() that can be set to - DirScanner to get this behavior. - - - Documentation changes: Explain that $CXXFLAGS contains $CCFLAGS - by default. Fix a bad target_factory example in the man page. - Add appendices to the User's Guide to cover the available Tools, - Builders and construction variables. Comment out the build of - the old Python 10 paper, which doesn't build on all systems and - is old enough at this point that it probably isn't worth the - effort to make it do so. - - From Wayne Lee: - - - Avoid "maximum recursion limit" errors when removing $(-$) pairs - from long command lines. - - From Clive Levinson: - - - Make ParseConfig() recognize and add -mno-cygwin to $LINKFLAGS and - $CCFLAGS, and -mwindows to $LINKFLAGS. - - From Michael McCracken: - - - Add a new "applelink" tool to handle the things like Frameworks and - bundles that Apple has added to gcc for linking. - - - Use more appropriate default search lists of linkers, compilers and - and other tools for the 'darwin' platform. - - - Add a LoadableModule Builder that builds a bundle on Mac OS X (Darwin) - and a shared library on other systems. - - - Improve SWIG tests for use on Mac OS X (Darwin). - - From Elliot Murphy: - - - Enhance the tests to guarantee persistence of ListOption - values in saved options files. - - - Supply the help text when -h is used with the -u, -U or -D options. - - From Christian Neeb: - - - Fix the Java parser's handling of string definitions to avoid ignoring - subsequent code. - - From Han-Wen Nienhuys: - - - Optimize variable expansion by: using the re.sub() method (when - possible); not using "eval" for variables for which we can fetch the - value directory; avoiding slowing substitution logic when there's no - '$' in the string. - - From Gary Oberbrunner: - - - Add an Environment.Dump() method to print the contents of a - construction environment. - - - Allow $LIBS (and similar variables) to contain explicit File Nodes. - - - Change ParseConfig to add the found library names directly to the - $LIBS variable, instead of returning them. - - - Add ParseConfig() support for the -framework GNU linker option. - - - Add a PRINT_CMD_LINE_FUNC construction variable to allow people - to filter (or log) command-line output. - - - Print an internal Python stack trace in response to an otherwise - unexplained error when --debug=stacktrace is specified. - - - Add a --debug=findlibs option to print what's happening when - the scanner is searching for libraries. - - - Allow Tool specifications to be passed a dictionary of keyword - arguments. - - - Support an Options default value of None, in which case the variable - will not be added to the construction environment unless it's set - explicitly by the user or from an Options file. - - - Avoid copying __builtin__ values into a construction environment's - dictionary when evaluating construction variables. - - - Add a new cross-platform intelc.py Tool that can detect and - configure the Intel C++ v8 compiler on both Windows, where it's - named icl, and Linux, where it's named icc. It also checks that - the directory specified in the Windows registry exists, and sets a - new $INTEL_C_COMPILER_VERSION construction variable to identify the - version being used. (Niall Douglas contributed an early prototype - of parts of this module.) - - - Fix the private Conftest._Have() function so it doesn't change - non-alphanumeric characters to underscores. - - - Supply a better error message when a construction variable expansion - has an unknown attribute. - - - Documentation changes: Update the man page to describe use of - filenames or Nodes in $LIBS. - - From Chris Pawling: - - - Have the linkloc tool use $MSVS_VERSION to select the Microsoft - Visual Studio version to use. - - From Kevin Quick: - - - Fix the Builder name returned from ListBuilders and other instances - of subclasses of the BuilderBase class. - - - Add Builders and construction variables to support rpcgen: - RPCGenClient(), RPCGenHeader(), RPCGenService(), RPCGenXDR(), - $RPCGEN, $RPCGENFLAGS, $RPCGENCLIENTFLAGS, $RPCGENHEADERFLAGS, - $RPCGENSERVICEFLAGS, $RPCGENXDRFLAGS. - - - Update the man page to document that prefix and suffix Builder - keyword arguments can be strings, callables or dictionaries. - - - Provide more info in the error message when a user tries to build - a target multiple ways. - - - Fix Delete() when a file doesn't exist and must_exist=1. (We were - unintentionally dependent on a bug in versions of the Python shutil.py - module prior to Python 2.3, which would generate an exception for - a nonexistent file even when ignore_errors was set.) - - - Only replace a Node's builder with a non-null source builder. - - - Fix a stack trace when a suffix selection dictionary is passed - an empty source file list. - - - Allow optional names to be attached to Builders, for default - Builders that don't get attached to construction environments. - - - Fix problems with Parallel Task Exception handling. - - - Build targets in an associated BuildDir even if there are targets - or subdirectories locally in the source directory. - - - If a FunctionAction has a callable class as its underlying Python - function, use its strfunction() method (if any) to display the - action. - - - Fix handling when BuildDir() exists but is unwriteable. Add - "Stop." to those error messages for consistency. - - - Catch incidents of bad builder creation (without an action) and - supply meaningful error messages. - - - Fix handling of src_suffix values that aren't extensions (don't - begin with a '.'). - - - Don't retrieve files from a CacheDir, but report what would happen, - when the -n option is used. - - - Use the source_scanner from the target Node, not the source node - itself. - - - Internal Scanners fixes: Make sure Scanners are only passed Nodes. - Fix how a Scanner.Selector called its base class initialization. - Make comparisons of Scanner objects more robust. Add a name to - an internal default ObjSourceScanner. - - - Add a deprecated warning for use of the old "scanner" keyword argument - to Builder creation. - - - Improve the --debug=explain message when the build action changes. - - - Test enhancements in SourceCode.py, option-n.py, midl.py. Better - Command() and Scanner test coverage. Improved test infrastructure - for -c output. - - - Refactor the interface between Action and Executor objects to treat - Actions atomically. - - - The --debug=presub option will now report the pre-substitution - each action seprately, instead of reporting the entire list before - executing the actions one by one. - - - The --debug=explain option explaining a changed action will now - (more correctly) show pre-substitution action strings, instead of - the commands with substituted file names. - - - A Node (file) will now be rebuilt if its PreAction or PostAction - actions change. - - - Python Function actions now have their calling signature (target, - source, env) reported correctly when displayed. - - - Fix BuildDir()/build_dir handling when the build_dir is underneath - the source directory and trying to use entries from the build_dir - as sources for other targets in the build-dir. - - - Fix hard-coding of JDK path names in various Java tests. - - - Handle Python stack traces consistently (stop at the SConscript stack - frame, by default) even if the Python source code isn't available. - - - Improve the performance of the --debug={tree,dtree} options. - - - Add --debug=objects logging of creation of OverrideWarner, - EnvironmentCopy and EnvironmentOverride objects. - - - Fix command-line expansion of Python Value Nodes. - - - Internal cleanups: Remove an unnecessary scan argument. Associate - Scanners only with Builders, not nodes. Apply overrides once when - a Builder is called, not in multiple places. Cache results from the - Node.FS.get_suffix() and Node.get_build_env() methods. Use the Python - md5 modules' hexdigest() method, if there is one. Have Taskmaster - call get_stat() once for each Node and re-use the value instead of - calling it each time it needs the value. Have Node.depends_on() - re-use the list from the children() method instead of calling it - multiple times. - - - Use the correct scanner if the same source file is used for targets in - two different environments with the same path but different scanners. - - - Collect logic for caching values in memory in a Memoizer class, - which cleans up a lot of special-case code in various methods and - caches additional values to speed up most configurations. - - - Add a PathAccept validator to the list of new canned PathOption - validators. - - From Jeff Squyres: - - - Documentation changes: Use $CPPDEFINES instead of $CCFLAGS in man - page examples. - - From Levi Stephen: - - - Allow $JARCHDIR to be expanded to other construction variables. - - From Christoph Wiedemann: - - - Add an Environment.SetDefault() method that only sets values if - they aren't already set. - - - Have the qt.py Tool not override variables already set by the user. - - - Add separate $QT_BINPATH, $QT_CPPPATH and $QT_LIBPATH variables - so these can be set individually, instead of being hard-wired - relative to $QTDIR. - - - The %TEMP% and %TMP% external environment variables are now propagated - automatically to the command execution environment on Windows systems. - - - A new --config= command-line option allows explicit control of - of when the Configure() tests are run: --config=force forces all - checks to be run, --config=cache uses all previously cached values, - --config=auto (the default) runs tests only when dependency analysis - determines it's necessary. - - - The Configure() subsystem can now write a config.h file with values - like HAVE_STDIO_H, HAVE_LIBM, etc. - - - The Configure() subsystem now executes its checks silently when the - -Q option is specified. - - - The Configure() subsystem now reports if a test result is being - taken from cache, and prints the standard output and error output - of tests even when cached. - - - Configure() test results are now reported as "yes" or "no" instead of - "ok" or "failed." - - - Fixed traceback printing when calling the env.Configure() method - instead of the Configure() global function. - - - The Configure() subsystem now caches build failures in a .sconsign - file in the subdirectory, not a .cache file. This may cause - tests to be re-executed the first time after you install 0.97. - - - Additional significant internal cleanups in the Configure() subsystem - and its tests. - - - Have the Qt Builder make uic-generated files dependent on the .ui.h - file, if one exists. - - - Add a test to make sure that SCons source code does not contain - try:-except: blocks that catch all errors, which potentially catch - and mask keyboard interrupts. - - - Fix us of TargetSignatures('content') with the SConf subsystem. - - From Russell Yanofsky: - - - Add support for the Metrowerks Codewarrior compiler and linker - (mwcc and mwld). - - - -RELEASE 0.96.1 - Mon, 23 Aug 2004 12:55:50 +0000 - - From Craig Bachelor: - - - Handle white space in the executable Python path name within in MSVS - project files by quoting the path. - - - Correct the format of a GUID string in a solution (.dsw) file so - MSVS can correctly "build enable" a project. - - From Steven Knight: - - - Add a must_exist flag to Delete() to let the user control whether - it's an error if the specified entry doesn't exist. The default - behavior is now to silently do nothing if it doesn't exist. - - - Package up the new Platform/darwin.py, mistakenly left out of 0.96. - - - Make the scons.bat REM statements into @REM so they aren't printed. - - - Make the SCons packaging SConscript files platform independent. - - From Anthony Roach: - - - Fix scanning of pre-compiled header (.pch) files for #includes, - broken in 0.96. - - - -RELEASE 0.96 - Wed, 18 Aug 2004 13:36:40 +0000 - - From Chad Austin: - - - Make the CacheDir() directory if it doesn't already exist. - - - Allow construction variable substitutions in $LIBS specifications. - - - Allow the emitter argument to a Builder() to be or expand to a list - of emitter functions, which will be called in sequence. - - - Suppress null values in construction variables like $LIBS that use - the internal _concat() function. - - - Remove .dll files from the construction variables searched for - libraries that can be fed to Win32 compilers. - - From Chad Austin and Christoph Wiedemann: - - - Add support for a $RPATH variable to supply a list of directories - to search for shared libraries when linking a program. Used by - the GNU and IRIX linkers (gnulink and sgilink). - - From Charles Crain: - - - Restore the ability to do construction variable substitutions in all - kinds of *PATH variables, even when the substitution returns a Node - or other object. - - From Tom Epperly: - - - Allow the Java() Builder to take more than one source directory. - - From Ralf W. Grosse-Kunstleve: - - - Have SConsignFile() use, by default, a custom "dblite.py" that we can - control and guarantee to work on all Python versions (or nearly so). - - From Jonathan Gurley: - - - Add support for the newer "ifort" versions of the Intel Fortran - Compiler for Linux. - - From Bob Halley: - - - Make the new *FLAGS variable type work with copied Environments. - - From Chris Hoeppler: - - - Initialize the name of a Scanner.Classic scanner correctly. - - From James Juhasz: - - - Add support for the .dylib shared library suffix and the -dynamiclib - linker option on Mac OS X. - - From Steven Knight: - - - Add an Execute() method for executing actions directly. - - - Support passing environment override keyword arguments to Command(). - - - Fix use of $MSVS_IGNORE_IDE_PATHS, which was broken when we added - support for $MSVS_USE_MFC_DIRS last release. - - - Make env.Append() and env.Prepend() act like the underlying Python - behavior when the variable being appended to is a UserList object. - - - Fix a regression that prevented the Command() global function in - 0.95 from working with command-line strings as actions. - - - Fix checking out a file from a source code management system when - the env.SourceCode() method was called with an individual file name - or node, not a directory name or node. - - - Enhance the Task.make_ready() method to create a list of the - out-of-date Nodes for the task for use by the wrapping interface. - - - Allow Scanners to pull the list of suffixes from the construction - environment when the "skeys" keyword argument is a string containing - a construction variable to be expanded. - - - Support new $CPPSUFFIXES, $DSUFFIXES $FORTRANSUFFIXES, and - $IDLSUFFIXES. construction variables that contain the default list - of suffixes to be scanned by a given type of scanner, allowing these - suffix lists to be easily added to or overridden. - - - Speed up Node creation when calling a Builder by comparing whether two - Environments are the same object, not if their underlying dictionaries - are equivalent. - - - Add a --debug=explain option that reports the reason(s) why SCons - thinks it must rebuild something. - - - Add support for functions that return platform-independent Actions - to Chmod(), Copy(), Delete(), Mkdir(), Move() and Touch() files - and/or directories. Like any other Actions, the returned Action - object may be executed directly using the Execute() global function - or env.Execute() environment method, or may be used as a Builder - action or in an env.Command() action list. - - - Add support for the strfunction argument to all types of Actions: - CommandAction, ListAction, and CommandGeneratorAction. - - - Speed up turning file system Nodes into strings by caching the - values after we're finished reading the SConscript files. - - - Have ParseConfig() recognize and supporting adding the -Wa, -Wl, - and -Wp, flags to ASFLAGS, LINKFLAGS and CPPFLAGS, respectively. - - - Change the .sconsign format and the checks for whether a Node is - up-to-date to make dependency checks more efficient and correct. - - - Add wrapper Actions to SCons.Defaults for $ASCOM, $ASPPCOM, $LINKCOM, - $SHLINKCOM, $ARCOM, $LEXCOM and $YACCCOM. This makes it possible - to replace the default print behavior with a custom strfunction() - for each of these. - - - When a Node has been built, don't walk the whole tree back to delete - the parents's implicit dependencies, let returning up the normal - Taskmaster descent take care of it for us. - - - Add documented support for separate target_scanner and source_scanner - arguments to Builder creation, which allows different scanners to - be applied to source files - - - Don't re-install or (re-generate) .h files when a subsidiary #included - .h file changes. This eliminates incorrect circular dependencies - with .h files generated from other source files. - - - Slim down the internal Sig.Calculator class by eliminating methods - whose functionality is now covered by Node methods. - - - Document use of the target_factory and source_factory keyword - arguments when creating Builder objects. Enhance Dir Nodes so that - they can be created with user-specified Builder objects. - - - Don't blow up with stack trace when the external $PATH environment - variable isn't set. - - - Make Builder calls return lists all the time, even if there's only - one target. This keeps things consistent and easier to program to - across platforms. - - - Add a Flatten() function to make it easier to deal with the Builders - all returning lists of targets, not individual targets. - - - Performance optimizations in Node.FS.__doLookup(). - - - Man page fixes: formatting typos, misspellings, bad example. - - - User's Guide fixes: Fix the signatures of the various example - *Options() calls. Triple-quote properly a multi-line Split example. - - - User's Guide additions: Chapter describing File and Directory - Nodes. Section describing declarative nature of SCons functions in - SConscript files. Better organization and clarification of points - raised by Robert P. J. Day. Chapter describing SConf (Autoconf-like) - functionality. Chapter describing how to install Python and - SCons. Chapter describing Java builds. - - From Chris Murray: - - - Add a .win32 attribute to force file names to expand with - Windows backslash path separators. - - - Fix escaping file names on command lines when the expansion is - concatenated with another string. - - - Add support for Fortran 90 and Fortran 95. This adds $FORTRAN* - variables that specify a default compiler, command-line, flags, - etc. for all Fortran versions, plus separate $F90* and $F95* - variables for when different compilers/flags/etc. must be specified - for different Fortran versions. - - - Have individual tools that create libraries override the default - $LIBPREFIX and $LIBSUFFIX values set by the platform. This makes - it easier to use Microsoft Visual Studio tools on a CygWin platform. - - From Gary Oberbrunner: - - - Add a --debug=presub option to print actions prior to substitution. - - - Add a warning upon use of the override keywords "targets" and - "sources" when calling Builders. These are usually mistakes which - are otherwise silently (and confusingly) turned into construction - variable overrides. - - - Try to find the ICL license file path name in the external environment - and the registry before resorting to the hard-coded path name. - - - Add support for fetching command-line keyword=value arguments in - order from an ARGLIST list. - - - Avoid stack traces when trying to read dangling symlinks. - - - Treat file "extensions" that only contain digits as part of the - file basename. This supports version numbers as part of shared - library names, for example. - - - Avoid problems when there are null entries (None or '') in tool - lists or CPPPATH. - - - Add an example and explanation of how to use "tools = ['default', ..." - when creating a construction environment. - - - Add a section describing File and Directory Nodes and some of their - attributes and methods. - - - Have ParseConfig() add a returned -pthread flag to both $CCFLAGS - and $LINKFLAGS. - - - Fix some test portability issues on Mac OS X (darwin). - - From Simon Perkins: - - - Fix a bug introduced in building shared libraries under MinGW. - - From Kevin Quick: - - - Handling SCons exceptions according to Pythonic standards. - - - Fix test/chained-build.py on systems that execute within one second. - - - Fix tests on systems where 'ar' warns about archive creation. - - From Anthony Roach: - - - Fix use of the --implicit-cache option with timestamp signatures. - - - If Visual Studio is installed, assume the C/C++ compiler, the linker - and the MIDL compiler that comes with it are available, too. - - - Better error messages when evaluating a construction variable - expansion yields a Python syntax error. - - - Change the generation of PDB files when using Visual Studio from - compile time to link time. - - From sam th: - - - Allow SConf.CheckLib() to search a list of libraries, like the - Autoconf AC_SEARCH_LIBS macro. - - - Allow the env.WhereIs() method to take a "reject" argument to - let it weed out specific path names. - - From Christoph Wiedemann: - - - Add new Moc() and Uic() Builders for more explicit control over - Qt builds, plus new construction variables to control them: - $QT_AUTOSCAN, $QT_DEBUG, $QT_MOCCXXPREFIX, $QT_MOCCXXSUFFIX, - $QT_MOCHPREFIX, $QT_MOCHSUFFIX, $QT_UICDECLPREFIX, $QT_UICDECLSUFFIX, - $QT_UICIMPLPREFIX, $QT_UICIMPLSUFFIX and $QT_UISUFFIX. - - - Add a new single_source keyword argument for Builders that enforces - a single source file on calls to the Builder. - - - -RELEASE 0.95 - Mon, 08 Mar 2004 06:43:20 -0600 - - From Chad Austin: - - - Replace print statements with calls to sys.stdout.write() so output - lines stay together when -j is used. - - - Add portability fixes for a number of tests. - - - Accomodate the fact that Cygwin's os.path.normcase() lies about - the underlying system being case-sensitive. - - - Fix an incorrect _concat() call in the $RCINCFLAGS definition for - the mingw Tool. - - - Fix a problem with the msvc tool with Python versions prior to 2.3. - - - Add support for a "toolpath" Tool() and Environment keyword that - allows Tool modules to be found in specified local directories. - - - Work around Cygwin Python's silly fiction that it's using a - case-sensitive file system. - - - More robust handling of data in VCComponents.dat. - - - If the "env" command is available, spawn commands with the more - general "env -" instead of "env -i". - - From Kerim Borchaev: - - - Fix a typo in a msvc.py's registry lookup: "VCComponents.dat", not - "VSComponents.dat". - - From Chris Burghart: - - - Fix the ability to save/restore a PackageOption to a file. - - From Steve Christensen: - - - Update the MSVS .NET and MSVC 6.0/7.0 path detection. - - From David M. Cooke: - - - Make the Fortran scanner case-insensitive for the INCLUDE string. - - From Charles Crain: - - - If no version of MSVC is detected but the tool is specified, - use the MSVC 6.0 paths by default. - - - Ignore any "6.1" version of MSVC found in the registry; this is a - phony version number (created by later service packs?) and would - throw off the logic if the user had any non-default paths configure. - - - Correctly detect if the user has independently configured the MSVC - "include," "lib" or "path" in the registry and use the appropriate - values. Previously, SCons would only use the values if all three - were set in the registry. - - - Make sure side-effect nodes are prepare()d before building their - corresponding target. - - - Preserve the ability to call BuildDir() multiple times with the - same target and source directory arguments. - - From Andy Friesen: - - - Add support for the Digital Mars "D" programming language. - - From Scott Lystig Fritchie: - - - Fix the ability to use a custom _concat() function in the - construction environment when calling _stripixes(). - - - Make the message about ignoring a missing SConscript file into a - suppressable Warning, not a hard-coded sys.stderr.write(). - - - If a builder can be called multiple times for a target (because - the sources and overrides are identical, or it's a builder with the - "multi" flag set), allow the builder to be called through multiple - environments so long as the builders have the same signature for - the environments in questions (that is, they're the same action). - - From Bob Halley: - - - When multiple targets are built by a single action, retrieve all - of them from cache, not just the first target, and exec the build - command if any of the targets isn't present in the cache. - - From Zephaniah Hull: - - - Fix command-line ARGUMENTS with multiple = in them. - - From Steven Knight: - - - Fix EnsureSConsVersion() so it checks against the SCons version, - not the Python version, on Pythons with sys.version_info. - - - Don't swallow the AttributeError when someone uses an expansion like - $TARGET.bak, so we can supply a more informative error message. - - - Fix an odd double-quote escape sequence in the man page. - - - Fix looking up a naked drive letter as a directory (Dir('C:')). - - - Support using File nodes in the LIBS construction variable. - - - Allow the LIBS construction variable to be a single string or File - node, not a list, when only one library is needed. - - - Fix typos in the man page: JAVACHDIR => JARCHDIR; add "for_signature" - to the __call__() example in the "Variable Substitution" section. - - - Correct error message spellings of "non-existant" to "non-existent." - - - When scanning for libraries to link with, don't append $LIBPREFIXES - or $LIBSUFFIXES values to the $LIBS values if they're already present. - - - Add a ZIPCOMPRESSION construction variable to control whether the - internal Python action for the Zip Builder compresses the file or - not. The default value is zipfile.ZIP_DEFLATED, which generates - a compressed file. - - - Refactor construction variable expansion to support recursive - expansion of variables (e.g. CCFLAGS = "$CCFLAGS -g") without going - into an infinite loop. Support this in all construction variable - overrides, as well as when copying Environments. - - - Fix calling Configure() from more than one subsidiary SConscript file. - - - Fix the env.Action() method so it returns the correct type of - Action for its argument(s). - - - Fix specifying .class files as input to JavaH with the .class suffix - when they weren't generated using the Java Builder. - - - Make the check for whether all of the objects going into a - SharedLibrary() are shared work even if the object was built in a - previous run. - - - Supply meaningful error messages, not stack traces, if we try to add - a non-Node as a source, dependency, or ignored dependency of a Node. - - - Generate MSVS Project files that re-invoke SCons properly regardless - of whether the file was built via scons.bat or scons.py. - (Thanks to Niall Douglas for contributing code and testing.) - - - Fix TestCmd.py, runtest.py and specific tests to accomodate being - run from directories whose paths include white space. - - - Provide a more useful error message if a construction variable - expansion contains a syntax error during evaluation. - - - Fix transparent checkout of implicit dependency files from SCCS - and RCS. - - - Added new --debug=count, --debug=memory and --debug=objects options. - --debug=count and --debug=objects only print anything when run - under Python 2.1 or later. - - - Deprecate the "overrides" keyword argument to Builder() creation - in favor of using keyword argument values directly (like we do - for builder execution and the like). - - - Always use the Builder overrides in substitutions, not just if - there isn't a target-specific environment. - - - Add new "rsrcpath" and "rsrcdir" and attributes to $TARGET/$SOURCE, - so Builder command lines can find things in Repository source - directories when using BuildDir. - - - Fix the M4 Builder so that it chdirs to the Repository directory - when the input file is in the source directory of a BuildDir. - - - Save memory at build time by allowing Nodes to delete their build - environments after they've been built. - - - Add AppendUnique() and PrependUnique() Environment methods, which - add values to construction variables like Append() and Prepend() - do, but suppress any duplicate elements in the list. - - - Allow the 'qt' tool to still be used successfully from a copied - Environment. The include and library directories previously ended up - having the same string re-appended to the end, yielding an incorrect - path name. - - - Supply a more descriptive error message when the source for a target - can't be found. - - - Initialize all *FLAGS variables with objects do the right thing with - appending flags as strings or lists. - - - Make things like ${TARGET.dir} work in *PATH construction variables. - - - Allow a $MSVS_USE_MFC_DIRS construction variable to control whether - ATL and MFC directories are included in the default INCLUDE and - LIB paths. - - - Document the dbm_module argument to the SConsignFile() function. - - From Vincent Risi: - - - Add support for the bcc32, ilink32 and tlib Borland tools. - - From Anthony Roach: - - - Supply an error message if the user tries to configure a BuildDir - for a directory that already has one. - - - Remove documentation of the still-unimplemented -e option. - - - Add -H help text listing the legal --debug values. - - - Don't choke if a construction variable is a non-string value. - - - Build Type Libraries in the target directory, not the source - directory. - - - Add an appendix to the User's Guide showing how to accomplish - various common tasks in Python. - - From Greg Spencer: - - - Add support for Microsoft Visual Studio 2003 (version 7.1). - - - Evaluate $MSVSPROJECTSUFFIX and $MSVSSOLUTIONSUFFIX when the Builder - is invoked, not when the tool is initialized. - - From Christoph Wiedemann: - - - When compiling Qt, make sure the moc_*.cc files are compiled using - the flags from the environment used to specify the target, not - the environment that first has the Qt Builders attached. - - - -RELEASE 0.94 - Fri, 07 Nov 2003 05:29:48 -0600 - - From Hartmut Goebel: - - - Add several new types of canned functions to help create options: - BoolOption(), EnumOption(), ListOption(), PackageOption(), - PathOption(). - - From Steven Knight: - - - Fix use of CPPDEFINES with C++ source files. - - - Fix env.Append() when the operand is an object with a __cmp__() - method (like a Scanner instance). - - - Fix subclassing the Environment and Scanner classes. - - - Add BUILD_TARGETS, COMMAND_LINE_TARGETS and DEFAULT_TARGETS variables. - - From Steve Leblanc: - - - SGI fixes: Fix C++ compilation, add a separate Tool/sgic++.py module. - - From Gary Oberbrunner: - - - Fix how the man page un-indents after examples in some browsers. - - From Vincent Risi: - - - Fix the C and C++ tool specifications for AIX. - - - -RELEASE 0.93 - Thu, 23 Oct 2003 07:26:55 -0500 - - From J.T. Conklin: - - - On POSIX, execute commands with the more modern os.spawnvpe() - function, if it's available. - - - Scan .S, .spp and .SPP files for C preprocessor dependencies. - - - Refactor the Job.Parallel() class to use a thread pool without a - condition variable. This improves parallel build performance and - handles keyboard interrupts properly when -j is used. - - From Charles Crain: - - - Add support for a JARCHDIR variable to control changing to a - directory using the jar -C option. - - - Add support for detecting Java manifest files when using jar, - and specifying them using the jar m flag. - - - Fix some Python 2.2 specific things in various tool modules. - - - Support directories as build sources, so that a rebuild of a target - can be triggered if anything underneath the directory changes. - - - Have the scons.bat and scons.py files look for the SCons modules - in site-packages as well. - - From Christian Engel: - - - Support more flexible inclusion of separate C and C++ compilers. - - - Use package management tools on AIX and Solaris to find where - the comilers are installed, and what version they are. - - - Add support for CCVERSION and CXXVERSION variables for a number - of C and C++ compilers. - - From Sergey Fogel: - - - Add test cases for the new capabilities to run bibtex and to rerun - latex as needed. - - From Ralf W. Grosse-Kunstleve: - - - Accomodate anydbm modules that don't have a sync() method. - - - Allow SConsignFile() to take an argument specifying the DBM - module to be used. - - From Stephen Kennedy: - - - Add support for a configurable global .sconsign.dbm file which - can be used to avoid cluttering each directory with an individual - .sconsign file. - - From John Johnson: - - - Fix (re-)scanning of dependencies in generated or installed - header files. - - From Steven Knight: - - - The -Q option suppressed too many messages; fix it so that it only - suppresses the Reading/Building messages. - - - Support #include when there's no space before the opening quote - or angle bracket. - - - Accomodate alphanumeric version strings in EnsurePythonVersion(). - - - Support arbitrary expansion of construction variables within - file and directory arguments to Builder calls and Environment methods. - - - Add Environment-method versions of the following global functions: - 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(). - - - Add the following global functions that correspond to the same-named - Environment methods: AlwaysBuild(), Command(), Depends(), Ignore(), - Install(), InstallAs(), Precious(), SideEffect() and SourceCode(). - - - Add the following global functions that correspond to the default - Builder methods supported by SCons: CFile(), CXXFile(), DVI(), Jar(), - Java(), JavaH(), Library(), M4(), MSVSProject(), Object(), PCH(), - PDF(), PostScript(), Program(), RES(), RMIC(), SharedLibrary(), - SharedObject(), StaticLibrary(), StaticObject(), Tar(), TypeLibrary() - and Zip(). - - - Rearrange the man page to show construction environment methods and - global functions in the same list, and to explain the difference. - - - Alphabetize the explanations of the builder methods in the man page. - - - Rename the Environment.Environment class to Enviroment.Base. - Allow the wrapping interface to extend an Environment by using its own - subclass of Environment.Base and setting a new Environment.Environment - variable as the calling entry point. - - - Deprecate the ParseConfig() global function in favor of a same-named - construction environment method. - - - Allow the Environment.WhereIs() method to take explicit path and - pathext arguments (like the underlying SCons.Util.WhereIs() function). - - - Remove the long-obsolete {Get,Set}CommandHandler() functions. - - - Enhance env.Append() to suppress null values when appropriate. - - - Fix ParseConfig() so it works regardless of initial construction - variable values. - - Extend CheckHeader(), CheckCHeader(), CheckCXXHeader() and - CheckLibWithHeader() to accept a list of header files that will be - #included in the test. The last one in the list is assumed to be - the one being checked for. (Prototype code contributed by Gerard - Patel and Niall Douglas). - - - Supply a warning when -j is used and threading isn't built in to - the current version of Python. - - - First release of the User's Guide (finally, and despite a lot - of things still missing from it...). - - From Clark McGrew: - - - Generalize the action for .tex files so that it will decide whether - a file is TeX or LaTeX, check the .aux output to decide if it should - run bibtex, and check the .log output to re-run LaTeX if needed. - - From Bram Moolenaar: - - - Split the non-SCons-specific functionality from SConf.py to a new, - re-usable Conftest.py module. - - From Gary Oberbrunner: - - - Allow a directory to be the target or source or dependency of a - Depends(), Ignore(), Precious() or SideEffect() call. - - From Gerard Patel: - - - Use the %{_mandir} macro when building our RPM package. - - From Marko Rauhamaa: - - - Have the closing message say "...terminated because of errors" if - there were any. - - From Anthony Roach: - - - On Win32 systems, only use "rm" to delete files if Cygwin is being - used. ("rm" doesn't understand Win32-format path names.) - - From Christoph Wiedemann: - - - Fix test/SWIG.py to find the Python include directory in all cases. - - - Fix a bug in detection of Qt installed on the local system. - - - Support returning Python 2.3 BooleanType values from Configure checks. - - - Provide an error message if someone mistakenly tries to call a - Configure check from within a Builder function. - - - Support calling a Builder when a Configure context is still open. - - - Handle interrupts better by eliminating all try:-except: blocks - which caught any and all exceptions, including KeyboardInterrupt. - - - Add a --duplicate= option to control how files are duplicated. - - - -RELEASE 0.92 - Wed, 20 Aug 2003 03:45:28 -0500 - - From Charles Crain and Gary Oberbrunner: - - - Fix Tool import problems with the Intel and PharLap linkers. - - From Steven Knight - - - Refactor the DictCmdGenerator class to be a Selector subclass. - - - Allow the DefaultEnvironment() function to take arguments and pass - them to instantiation of the default construction environment. - - - Update the Debian package so it uses Python 2.2 and more closely - resembles the currently official Debian packaging info. - - From Gerard Patel - - - When the yacc -d flag is used, take the .h file base name from the - target .c file, not the source (matching what yacc does). - - - -RELEASE 0.91 - Thu, 14 Aug 2003 13:00:44 -0500 - - From Chad Austin: - - - Support specifying a list of tools when calling Environment.Copy(). - - - Give a Value Nodes a timestamp of the system time when they're - created, so they'll work when using timestamp-based signatures. - - - Add a DefaultEnvironment() function that only creates a default - environment on-demand (for fetching source files, e.g.). - - - Portability fix for test/M4.py. - - From Steven Knight: - - - Tighten up the scons -H help output. - - - When the input yacc file ends in .yy and the -d flag is specified, - recognize that a .hpp file (not a .h file) will be created. - - - Make builder prefixes work correctly when deducing a target - from a source file name in another directory. - - - Documentation fixes: typo in the man page; explain up-front about - not propagating the external environment. - - - Use "cvs co -d" instead of "cvs co -p >" when checking out something - from CVS with a specified module name. This avoids zero-length - files when there is a checkout error. - - - Add an "sconsign" script to print the contents of .sconsign files. - - - Speed up maintaining the various lists of Node children by using - dictionaries to avoid "x in list" searches. - - - Cache the computed list of Node children minus those being Ignored - so it's only calculated once. - - - Fix use of the --cache-show option when building a Program() - (or using any other arbitrary action) by making sure all Action - instances have strfunction() methods. - - - Allow the source of Command() to be a directory. - - - Better error handling of things like raw TypeErrors in SConscripts. - - - When installing using "setup.py install --prefix=", suppress the - distutils warning message about adding the (incorrect) library - directory to your search path. - - - Correct the spelling of the "validater" option to "validator." - Add a DeprecatedWarning when the old spelling is used. - - - Allow a Builder's emitter to be a dictionary that maps source file - suffixes to emitter functions, using the suffix of the first file - in the source list to pick the right one. - - - Refactor the creation of the Program, *Object and *Library Builders - so that they're moved out of SCons.Defaults and created on demand. - - - Don't split SConscript file names on white space. - - - Document the SConscript function's "dirs" and "name" keywords. - - - Remove the internal (and superfluous) SCons.Util.argmunge() function. - - - Add /TP to the default CXXFLAGS for msvc, so it can compile all - of the suffixes we use as C++ files. - - - Allow the "prefix" and "suffix" attributes of a Builder to be - callable objects that return generated strings, or dictionaries - that map a source file suffix to the right prefix/suffix. - - - Support a MAXLINELINELENGTH construction variable on Win32 systems - to control when a temporary file is used for long command lines. - - - Make how we build .rpm packages not depend on the installation - locations from the distutils being used. - - - When deducing a target Node, create it directly from the first - source Node, not by trying to create the right string to pass to - arg2nodes(). - - - Add support for SWIG. - - From Bram Moolenaar: - - - Test portability fixes for FreeBSD. - - From Gary Oberbrunner: - - - Report the target being built in error messages when building - multiple sources from different extensions, or when the target file - extension can't be deduced, or when we don't have an action for a - file suffix. - - - Provide helpful error messages when the arguments to env.Install() - are incorrect. - - - Fix the value returned by the Node.prevsiginfo() method to conform - to a previous change when checking whether a node is current. - - - Supply a stack trace if the Taskmaster catches an exception. - - - When using a temporary file for a long link line on Win32 systems, - (also) print the command line that is being executed through the - temporary file. - - - Initialize the LIB environment variable when using the Intel - compiler (icl). - - - Documentation fixes: better explain the AlwaysBuild() function. - - From Laurent Pelecq: - - - When the -debug=pdb option is specified, use pdb.Pdb().runcall() to - call pdb directly, don't call Python recursively. - - From Ben Scott: - - - Add support for a platform-independent CPPDEFINES variable. - - From Christoph Wiedemann: - - - Have the g++ Tool actually use g++ in preference to c++. - - - Have the gcc Tool actually use gcc in preference to cc. - - - Add a gnutools.py test of the GNU tool chain. - - - Be smarter about linking: use $CC by default and $CXX only if we're - linking with any C++ objects. - - - Avoid SCons hanging when a piped command has a lot of output to read. - - - Add QT support for preprocessing .ui files into .c files. - - - -RELEASE 0.90 - Wed, 25 Jun 2003 14:24:52 -0500 - - From Chad Austin: - - - Fix the _concat() documentation, and add a test for it. - - - Portability fixes for non-GNU versions of lex and yacc. - - From Matt Balvin: - - - Fix handling of library prefixes when the subdirectory matches - the prefix. - - From Timothee Bessett: - - - Add an M4 Builder. - - From Charles Crain: - - - Use '.lnk' as the suffix on the temporary file for linking long - command lines (necessary for the Phar Lap linkloc linker). - - - Save non-string Options values as their actual type. - - - Save Options string values that contain a single quote correctly. - - - Save any Options values that are changed from the default - Environment values, not just ones changed on the command line or in - an Options file. - - - Make closing the Options file descriptor exception-safe. - - From Steven Knight: - - - SCons now enforces (with an error) that construction variables - must have the same form as valid Python identifiers. - - - Fix man page bugs: remove duplicate AddPostAction() description; - document no_import_lib; mention that CPPFLAGS does not contain - $_CPPINCFLAGS; mention that F77FLAGS does not contain $_F77INCFLAGS; - mention that LINKFLAGS and SHLINKFLAGS contains neither $_LIBFLAGS - nor $_LIBDIRFLAGS. - - - Eliminate a dependency on the distutils.fancy_getopt module by - copying and pasting its wrap_text() function directly. - - - Make the Script.Options() subclass match the underlying base class - implementation. - - - When reporting a target is up to date, quote the target like make - (backquote-quote) instead of with double quotes. - - - Fix handling of ../* targets when using -U, -D or -u. - - From Steve Leblanc: - - - Don't update the .sconsign files when run with -n. - - From Gary Oberbrunner: - - - Add support for the Intel C Compiler (icl.exe). - - From Anthony Roach - - - Fix Import('*'). - - From David Snopek - - - Fix use of SConf in paths with white space in them. - - - Add CheckFunc and CheckType functionality to SConf. - - - Fix use of SConf with Builders that return a list of nodes. - - From David Snopek and Christoph Wiedemann - - - Fix use of the SConf subsystem with SConscriptChdir(). - - From Greg Spencer - - - Check for the existence of MS Visual Studio on disk before using it, - to avoid getting fooled by leftover junk in the registry. - - - Add support for MSVC++ .NET. - - - Add support for MS Visual Studio project files (DSP, DSW, - SLN and VCPROJ files). - - From Christoph Wiedemann - - - SConf now works correctly when the -n and -q options are used. - - - -RELEASE 0.14 - Wed, 21 May 2003 05:16:32 -0500 - - From Chad Austin: - - - Use .dll (not .so) for shared libraries on Cygwin; use -fPIC - when compiling them. - - - Use 'rm' to remove files under Cygwin. - - - Add a PLATFORM variable to construction environments. - - - Remove the "platform" argument from tool specifications. - - - Propogate PYTHONPATH when running the regression tests so distutils - can be found in non-standard locations. - - - Using MSVC long command-line linking when running Cygwin. - - - Portability fixes for a lot of tests. - - - Add a Value Node class for dependencies on in-core Python values. - - From Allen Bierbaum: - - - Pass an Environment to the Options validator method, and - add an Options.Save() method. - - From Steve Christensen: - - - Add an optional sort function argument to the GenerateHelpText() - Options function. - - - Evaluate the "varlist" variables when computing the signature of a - function action. - - From Charles Crain: - - - Parse the source .java files for class names (including inner class - names) to figure out the target .class files that will be created. - - - Make Java support work with Repositories and SConscriptChdir(0). - - - Pass Nodes, not strings, to Builder emitter functions. - - - Refactor command-line interpolation and signature calculation - so we can use real Node attributes. - - From Steven Knight: - - - Add Java support (javac, javah, jar and rmic). - - - Propagate the external SYSTEMROOT environment variable into ENV on - Win32 systems, so external commands that use sockets will work. - - - Add a .posix attribute to PathList expansions. - - - Check out CVS source files using POSIX path names (forward slashes - as separators) even on Win32. - - - Add Node.clear() and Node.FS.Entry.clear() methods to wipe out a - Node's state, allowing it to be re-evaluated by continuous - integration build interfaces. - - - Change the name of the Set{Build,Content}SignatureType() functions - to {Target,Source}Signatures(). Deprecate the old names but support - them for backwards compatibility. - - - Add internal SCons.Node.FS.{Dir,File}.Entry() methods. - - - Interpolate the null string if an out-of-range subscript is used - for a construction variable. - - - Fix the internal Link function so that it properly links or copies - files in subsidiary BuildDir directories. - - - Refactor the internal representation of a single execution instance - of an action to eliminate redundant signature calculations. - - - Eliminate redundant signature calculations for Nodes. - - - Optimize out calling hasattr() before accessing attributes. - - - Say "Cleaning targets" (not "Building...") when the -c option is - used. - - From Damyan Pepper: - - - Quote the "Entering directory" message like Make. - - From Stefan Reichor: - - - Add support for using Ghostscript to convert Postscript to PDF files. - - From Anthony Roach: - - - Add a standalone "Alias" function (separate from an Environment). - - - Make Export() work for local variables. - - - Support passing a dictionary to Export(). - - - Support Import('*') to import everything that's been Export()ed. - - - Fix an undefined exitvalmap on Win32 systems. - - - Support new SetOption() and GetOption() functions for setting - various command-line options from with an SConscript file. - - - Deprecate the old SetJobs() and GetJobs() functions in favor of - using the new generic {Set,Get}Option() functions. - - - Fix a number of tests that searched for a Fortran compiler using the - external PATH instead of what SCons would use. - - - Fix the interaction of SideEffect() and BuildDir() so that (for - example) PDB files get put correctly in a BuildDir(). - - From David Snopek: - - - Contribute the "Autoscons" code for Autoconf-like checking for - the existence of libraries, header files and the like. - - - Have the Tool() function add the tool name to the $TOOLS - construction variable. - - From Greg Spencer: - - - Support the C preprocessor #import statement. - - - Allow the SharedLibrary() Builder on Win32 systems to be able to - register a newly-built dll using regsvr32. - - - Add a Builder for Windows type library (.tlb) files from IDL files. - - - Add an IDL scanner. - - - Refactor the Fortran, C and IDL scanners to share common logic. - - - Add .srcpath and .srcdir attributes to $TARGET and $SOURCE. - - From Christoph Wiedemann: - - - Integrate David Snopek's "Autoscons" code as the new SConf - configuration subsystem, including caching of values between - runs (using normal SCons dependency mechanisms), tests, and - documentation. - - - -RELEASE 0.13 - Mon, 31 Mar 2003 20:22:00 -0600 - - From Charles Crain: - - - Fix a bug when BuildDir(duplicate=0) is used and SConscript - files are called from within other SConscript files. - - - Support (older) versions of Perforce which don't set the Windows - registry. - - - -RELEASE 0.12 - Thu, 27 Mar 2003 23:52:09 -0600 - - From Charles Crain: - - - Added support for the Perforce source code management system. - - - Fix str(Node.FS) so that it returns a path relative to the calling - SConscript file's directory, not the top-level directory. - - - Added support for a separate src_dir argument to SConscript() - that allows explicit specification of where the source files - for an SConscript file can be found. - - - Support more easily re-usable flavors of command generators by - calling callable variables when strings are expanded. - - From Steven Knight: - - - Added an INSTALL construction variable that can be set to a function - to control how the Install() and InstallAs() Builders install files. - The default INSTALL function now copies, not links, files. - - - Remove deprecated features: the "name" argument to Builder objects, - and the Environment.Update() method. - - - Add an Environment.SourceCode() method to support fetching files - from source code systems. Add factory methods that create Builders - to support BitKeeper, CVS, RCS, and SCCS. Add support for fetching - files from RCS or SCCS transparently (like GNU Make). - - - Make the internal to_String() function more efficient. - - - Make the error message the same as other build errors when there's a - problem unlinking a target file in preparation for it being built. - - - Make TARGET, TARGETS, SOURCE and SOURCES reserved variable names and - warn if the user tries to set them in a construction environment. - - - Add support for Tar and Zip files. - - - Better documentation of the different ways to export variables to a - subsidiary SConscript file. Fix documentation bugs in a tools - example, places that still assumed SCons split strings on white - space, and typos. - - - Support fetching arbitrary files from the TARGETS or SOURCES lists - (e.g. ${SOURCES[2]}) when calculating the build signature of a - command. - - - Don't silently swallow exceptions thrown by Scanners (or other - exceptions while finding a node's dependent children). - - - Push files to CacheDir() before calling the superclass built() - method (which may clear the build signature as part of clearing - cached implicit dependencies, if the file has a source scanner). - (Bug reported by Jeff Petkau.) - - - Raise an internal error if we attempt to push a file to CacheDir() - with a build signature of None. - - - Add an explicit Exit() function for terminating early. - - - Change the documentation to correctly describe that the -f option - doesn't change to the directory in which the specified file lives. - - - Support changing directories locally with SConscript directory - path names relative to any SConstruct file specified with -f. - This allows you to build in another directory by simply changing - there and pointing at the SConstruct file in another directory. - - - Change the default SConscriptChdir() behavior to change to the - SConscript directory while it's being read. - - - Fix an exception thrown when the -U option was used with no - Default() target specified. - - - Fix -u so that it builds things in corresponding build directories - when used in a source directory. - - From Lachlan O'Dea: - - - Add SharedObject() support to the masm tool. - - - Fix WhereIs() to return normalized paths. - - From Jeff Petkau: - - - Don't copy a built file to a CacheDir() if it's already there. - - - Avoid partial copies of built files in a CacheDir() by copying - to a temporary file and renaming. - - From Anthony Roach: - - - Fix incorrect dependency-cycle errors when an Aliased source doesn't - exist. - - - -RELEASE 0.11 - Tue, 11 Feb 2003 05:24:33 -0600 - - From Chad Austin: - - - Add support for IRIX and the SGI MIPSPro tool chain. - - - Support using the MSVC tool chain when running Cygwin Python. - - From Michael Cook: - - - Avoid losing signal bits in the exit status from a command, - helping terminate builds on interrupt (CTRL+C). - - From Charles Crain: - - - Added new AddPreAction() and AddPostAction() functions that support - taking additional actions before or after building specific targets. - - - Add support for the PharLap ETS tool chain. - - From Steven Knight: - - - Allow Python function Actions to specify a list of construction - variables that should be included in the Action's signature. - - - Allow libraries in the LIBS variable to explicitly include the prefix - and suffix, even when using the GNU linker. - (Bug reported by Neal Becker.) - - - Use DOS-standard CR-LF line endings in the scons.bat file. - (Bug reported by Gary Ruben.) - - - Doc changes: Eliminate description of deprecated "name" keyword - argument from Builder definition (reported by Gary Ruben). - - - Support using env.Append() on BUILDERS (and other dictionaries). - (Bug reported by Bj=F6rn Bylander.) - - - Setting the BUILDERS construction variable now properly clears - the previous Builder attributes from the construction Environment. - (Bug reported by Bj=F6rn Bylander.) - - - Fix adding a prefix to a file when the target isn't specified. - (Bug reported by Esa Ilari Vuokko.) - - - Clean up error messages from problems duplicating into read-only - BuildDir directories or into read-only files. - - - Add a CommandAction.strfunction() method, and add an "env" argument - to the FunctionAction.strfunction() method, so that all Action - objects have strfunction() methods, and the functions for building - and returning a string both take the same arguments. - - - Add support for new CacheDir() functionality to share derived files - between builds, with related options --cache-disable, --cache-force, - and --cache-show. - - - Change the default behavior when no targets are specified to build - everything in the current directory and below (like Make). This - can be disabled by specifying Default(None) in an SConscript. - - - Revamp SCons installation to fix a case-sensitive installation - on Win32 systems, and to add SCons-specific --standard-lib, - --standalone-lib, and --version-lib options for easier user - control of where the libraries get installed. - - - Fix the ability to directly import and use Platform and Tool modules - that have been implicitly imported into an Environment(). - - - Add support for allowing an embedding interface to annotate a node - when it's created. - - - Extend the SConscript() function to accept build_dir and duplicate - keyword arguments that function like a BuildDir() call. - - From Steve Leblanc: - - - Fix the output of -c -n when directories are involved, so it - matches -c. - - From Anthony Roach: - - - Use a different shared object suffix (.os) when using gcc so shared - and static objects can exist side-by-side in the same directory. - - - Allow the same object files on Win32 to be linked into either - shared or static libraries. - - - Cache implicit cache values when using --implicit-cache. - - - -RELEASE 0.10 - Thu, 16 Jan 2003 04:11:46 -0600 - - From Derrick 'dman' Hudson: - - - Support Repositories on other file systems by symlinking or - copying files when hard linking won't work. - - From Steven Knight: - - - Remove Python bytecode (*.pyc) files from the scons-local packages. - - - Have FunctionActions print a description of what they're doing - (a representation of the Python call). - - - Fix the Install() method so that, like other actions, it prints - what would have happened when the -n option is used. - - - Don't create duplicate source files in a BuildDir when the -n - option is used. - - - Refactor the Scanner interface to eliminate unnecessary Scanner - calls and make it easier to write efficient scanners. - - - Added a "recursive" flag to Scanner creation that specifies the - Scanner should be invoked recursively on dependency files returned - by the scanner. - - - Significant performance improvement from using a more efficient - check, throughout the code, for whether a Node has a Builder. - - - Fix specifying only the source file to MultiStepBuilders such as - the Program Builder. (Bug reported by Dean Bair.) - - - Fix an exception when building from a file with the same basename as - the subdirectory in which it lives. (Bug reported by Gerard Patel.) - - - Fix automatic deduction of a target file name when there are - multiple source files specified; the target is now deduced from just - the first source file in the list. - - - Documentation fixes: better initial explanation of SConscript files; - fix a misformatted "table" in the StaticObject explanation. - - From Steven Knight and Steve Leblanc: - - - Fix the -c option so it will remove symlinks. - - From Steve Leblanc: - - - Add a Clean() method to support removing user-specified targets - when using the -c option. - - - Add a development script for running SCons through PyChecker. - - - Clean up things found by PyChecker (mostly unnecessary imports). - - - Add a script to use HappyDoc to create HTML class documentation. - - From Lachlan O'Dea: - - - Make the Environment.get() method return None by default. - - From Anthony Roach: - - - Add SetJobs() and GetJobs() methods to allow configuration of the - number of default jobs (still overridden by -j). - - - Convert the .sconsign file format from ASCII to a pickled Python - data structure. - - - Error message cleanups: Made consistent the format of error - messages (now all start with "scons: ***") and warning messages (now - all start with "scons: warning:"). Caught more cases with the "Do - not know how to build" error message. - - - Added support for the MinGW tool chain. - - - Added a --debug=includes option. - - - -RELEASE 0.09 - Thu, 5 Dec 2002 04:48:25 -0600 - - From Chad Austin: - - - Add a Prepend() method to Environments, to append values to - the beginning of construction variables. - - From Matt Balvin: - - - Add long command-line support to the "lib" Tool (Microsoft library - archiver), too. - - From Charles Crain: - - - Allow $$ in a string to be passed through as $. - - - Support file names with odd characters in them. - - - Add support for construction variable substition on scanner - directories (in CPPPATH, F77PATH, LIBPATH, etc.). - - From Charles Crain and Steven Knight: - - - Add Repository() functionality, including the -Y option. - - From Steven Knight: - - - Fix auto-deduction of target names so that deduced targets end - up in the same subdirectory as the source. - - - Don't remove source files specified on the command line! - - - Suport the Intel Fortran Compiler (ifl.exe). - - - Supply an error message if there are no command-line or - Default() targets specified. - - - Fix the ASPPCOM values for the GNU assembler. - (Bug reported by Brett Polivka.) - - - Fix an exception thrown when a Default() directory was specified - when using the -U option. - - - Issue a warning when -c can't remove a target. - - - Eliminate unnecessary Scanner calls by checking for the - existence of a file before scanning it. (This adds a generic - hook to check an arbitrary condition before scanning.) - - - Add explicit messages to tell when we're "Reading SConscript files - ...," "done reading SConscript files," "Building targets," and - "done building targets." Add a -Q option to supress these. - - - Add separate $SHOBJPREFIX and $SHOBJSUFFIX construction variables - (by default, the same as $OBJPREFIX and $OBJSUFFIX). - - - Add Make-like error messages when asked to build a source file, - and before trying to build a file that doesn't have all its source - files (including when an invalid drive letter is used on WIN32). - - - Add an scons-local-{version} package (in both .tar.gz and .zip - flavors) to help people who want to ship SCons as a stand-alone - build tool in their software packages. - - - Prevent SCons from unlinking files in certain situations when - the -n option is used. - - - Change the name of Tool/lib.py to Tool/mslib.py. - - From Steven Knight and Anthony Roach: - - - Man page: document the fact that Builder calls return Node objects. - - From Steve LeBlanc: - - - Refactor option processing to use our own version of Greg Ward's - Optik module, modified to run under Python 1.5.2. - - - Add a ParseConfig() command to modify an environment based on - parsing output from a *-config command. - - From Jeff Petkau: - - - Fix interpretation of '#/../foo' on Win32 systems. - - From Anthony Roach: - - - Fixed use of command lines with spaces in their arguments, - and use of Nodes with spaces in their string representation. - - - Make access and modification times of files in a BuildDir match - the source file, even when hard linking isn't available. - - - Make -U be case insensitive on Win32 systems. - - - Issue a warning and continue when finding a corrupt .sconsign file. - - - Fix using an alias as a dependency of a target so that if one of the - alias' dependencies gets rebuilt, the resulting target will, too. - - - Fix differently ordered targets causing unnecessary rebuilds - on case insensitive systems. - - - Use os.system() to execute external commands whenever the "env" - utility is available, which is much faster than fork()/exec(), - and fixes the -j option on several platforms. - - - Fix use of -j with multiple targets. - - - Add an Options() object for friendlier accomodation of command- - line arguments. - - - Add support for Microsoft VC++ precompiled header (.pch) files, - debugger (.pdb) files, and resource (.rc) files. - - - Don't compute the $_CPPINCFLAGS, $_F77INCFLAGS, $_LIBFLAGS and - $_LIBDIRFLAGS variables each time a command is executed, define - them so they're computed only as needed. Add a new _concat - function to the Environment that allows people to define their - own similar variables. - - - Fix dependency scans when $LIBS is overridden. - - - Add EnsurePythonVersion() and EnsureSConsVersion() functions. - - - Fix the overly-verbose stack trace on ListBuilder build errors. - - - Add a SetContentSignatureType() function, allowing use of file - timestamps instead of MD5 signatures. - - - Make -U and Default('source') fail gracefully. - - - Allow the File() and Dir() methods to take a path-name string as - the starting directory, in addition to a Dir object. - - - Allow the command handler to be selected via the SPAWN, SHELL - and ESCAPE construction variables. - - - Allow construction variables to be overridden when a Builder - is called. - - From sam th: - - - Dynamically check for the existence of utilities with which to - initialize Environments by default. - - - -RELEASE 0.08 - Mon, 15 Jul 2002 12:08:51 -0500 - - From Charles Crain: - - - Fixed a bug with relative CPPPATH dirs when using BuildDir(). - (Bug reported by Bob Summerwill.) - - - Added a warnings framework and a --warn option to enable or - disable warnings. - - - Make the C scanner warn users if files referenced by #include - directives cannot be found and --warn=dependency is specified. - - - The BUILDERS construction variable should now be a dictionary - that maps builder names to actions. Existing uses of lists, - and the Builder name= keyword argument, generate warnings - about use of deprecated features. - - - Removed the "shared" keyword argument from the Object and - Library builders. - - - Added separated StaticObject, SharedObject, StaticLibrary and - SharedLibrary builders. Made Object and Library synonyms for - StaticObject and StaticLibrary, respectively. - - - Add LIBS and LIBPATH dependencies for shared libraries. - - - Removed support for the prefix, suffix and src_suffix arguments - to Builder() to be callable functions. - - - Fix handling file names with multiple dots. - - - Allow a build directory to be outside of the SConstruct tree. - - - Add a FindFile() function that searches for a file node with a - specified name. - - - Add $CPPFLAGS to the shared-object command lines for g++ and gcc. - - From Charles Crain and Steven Knight: - - - Add a "tools=" keyword argument to Environment instantiation, - and a separate Tools() method, for more flexible specification - of tool-specific environment changes. - - From Steven Knight: - - - Add a "platform=" keyword argument to Environment instantiation, - and a separate Platform() method, for more flexible specification - of platform-specific environment changes. - - - Updated README instructions and setup.py code to catch an - installation failure from not having distutils installed. - - - Add descriptions to the -H help text for -D, -u and -U so - people can tell them apart. - - - Remove the old feature of automatically splitting strings - of file names on white space. - - - Add a dependency Scanner for native Fortran "include" statements, - using a new "F77PATH" construction variable. - - - Fix C #include scanning to detect file names with characters like - '-' in them. - - - Add more specific version / build output to the -v option. - - - Add support for the GNU as, Microsoft masm, and nasm assemblers. - - - Allow the "target" argument to a Builder call to be omitted, in - which case the target(s) are deduced from the source file(s) and the - Builder's specified suffix. - - - Add a tar archive builder. - - - Add preliminary support for the OS/2 Platform, including the icc - and ilink Tools. - - From Jeff Petkau: - - - Fix --implicit-cache if the scanner returns an empty list. - - From Anthony Roach: - - - Add a "multi" keyword argument to Builder creation that specifies - it's okay to call the builder multiple times for a target. - - - Set a "multi" on Aliases so multiple calls will append to an Alias. - - - Fix emitter functions' use of path names when using BuildDir or - in subdirectories. - - - Fix --implicit-cache causing redundant rebuilds when the header - file list changed. - - - Fix --implicit-cache when a file has no implicit dependencies and - its source is generated. - - - Make the drive letters on Windows always be the same case, so that - changes in the case of drive letters don't cause a rebuild. - - - Fall back to importing the SCons.TimeStamp module if the SCons.MD5 - module can't be imported. - - - Fix interrupt handling to guarantee that a single interrupt will - halt SCons both when using -j and not. - - - Fix .sconsign signature storage so that output files of one build - can be safely used as input files to another build. - - - Added a --debug=time option to print SCons execution times. - - - Print an error message if a file can't be unlinked before being - built, rather than just silently terminating the build. - - - Add a SideEffect() method that can be used to tell the build - engine that a given file is created as a side effect of building - a target. A file can be specified as a side effect of more than - one build comand, in which case the commands will not be executed - simultaneously. - - - Significant performance gains from not using our own version of - the inefficient stock os.path.splitext() method, caching source - suffix computation, code cleanup in MultiStepBuilder.__call__(), - and replicating some logic in scons_subst(). - - - Add --implicit-deps-changed and --implicit-deps-unchanged options. - - - Add a GetLaunchDir() function. - - - Add a SetBuildSignatureType() function. - - From Zed Shaw: - - - Add an Append() method to Environments, to append values to - construction variables. - - - Change the name of Update() to Replace(). Keep Update() as a - deprecated synonym, at least for now. - - From Terrel Shumway: - - - Use a $PYTHON construction variable, initialized to sys.executable, - when using Python to build parts of the SCons packages. - - - Use sys.prefix, not sys.exec_prefix, to find pdb.py. - - - -RELEASE 0.07 - Thu, 2 May 2002 13:37:16 -0500 - - From Chad Austin: - - - Changes to build SCons packages on IRIX (and other *NIces). - - - Don't create a directory Node when a file already exists there, - and vice versa. - - - Add 'dirs' and 'names' keyword arguments to SConscript for - easier specification of subsidiary SConscript files. - - From Charles Crain: - - - Internal cleanup of environment passing to function Actions. - - - Builders can now take arbitrary keyword arguments to create - attributes to be passed to: command generator functions, - FunctionAction functions, Builder emitter functions (below), - and prefix/suffix generator functions (below). - - - Command generator functions can now return ANYTHING that can be - converted into an Action (a function, a string, a CommandGenerator - instance, even an ActionBase instance). - - - Actions now call get_contents() with the actual target and source - nodes used for the build. - - - A new DictCmdGenerator class replaces CompositeBuilder to support - more flexible Builder behavior internally. - - - Builders can now take an emitter= keyword argument. An emitter - is a function that takes target, source, and env argument, then - return a 2-tuple of (new sources, new targets). The emitter is - called when the Builder is __call__'ed, allowing a user to modify - source and target lists. - - - The prefix, suffix and src_suffix Builder arguments now take a - callable as well a string. The callable is passed the Environment - and any extra Builder keyword arguments and is expected to return - the appropriate prefix or suffix. - - - CommandActions can now be a string, a list of command + argument - strings, or a list of commands (strings or lists). - - - Added shared library support. The Object and Library Builders now - take a "shared=1" keyword argument to specify that a shared object - or shared library should be built. It is an error to try to build - static objects into a shared library or vice versa. - - - Win32 support for .def files has been added. Added the Win32-specific - construction variables $WIN32DEFPREFIX, $WIN32DEFSUFFIX, - $WIN32DLLPREFIX and $WIN32IMPLIBPREFIX. When building a .dll, - the new construction variable $WIN32_INSERT_DEF, controls whether - the appropriately-named .def file is inserted into the target - list (if not already present). A .lib file is always added to - a Library build if not present in the list of targets. - - - ListBuilder now passes all targets to the action, not just the first. - - - Fix so that -c now deletes generated yacc .h files. - - - Builder actions and emitter functions can now be initialized, through - construction variables, to things other than strings. - - - Make top-relative '#/dir' lookups work like '#dir'. - - - Fix for relative CPPPATH directories in subsidiary SConscript files - (broken in 0.06). - - - Add a for_signature argument to command generators, so that - generators that need to can return distinct values for the - command signature and for executing the command. - - From Alex Jacques: - - - Create a better scons.bat file from a py2bat.py script on the Python - mailing list two years ago (modeled after pl2bat.pl). - - From Steven Knight: - - - Fix so that -c -n does *not* remove the targets! - - - Man page: Add a hierarchical libraries + Program example. - - - Support long MSVC linker command lines through a builder action - that writes to a temporary file and uses the magic MSVC "link @file" - argument syntax if the line is longer than 2K characters. - - - Fix F77 command-line options on Win32 (use /Fo instead of -o). - - - Use the same action to build from .c (lower case) and .C (upper - case) files on case-insensitive systems like Win32. - - - Support building a PDF file directly from a TeX or LaTeX file - using pdftex or pdflatex. - - - Add a -x option to runtest.py to specify the script being tested. - A -X option indicates it's an executable, not a script to feed - to the Python interpreter. - - - Add a Split() function (identical to SCons.Util.argmunge()) for use - in the next release, when Builders will no longer automatically split - strings on white space. - - From Steve Leblanc: - - - Add the SConscriptChdir() method. - - From Anthony Roach: - - - Fix --debug=tree when used with directory targets. - - - Significant internal restructuring of Scanners and Taskmaster. - - - Added new --debug=dtree option. - - - Fixes for --profile option. - - - Performance improvement in construction variable substitution. - - - Implemented caching of content signatures, plus added --max-drift - option to control caching. - - - Implemented caching of dependency signatures, enabled by new - --implicit-cache option. - - - Added abspath construction variable modifier. - - - Added $SOURCE variable as a synonym for $SOURCES[0]. - - - Write out .sconsign files on error or interrupt so intermediate - build results are saved. - - - Change the -U option to -D. Make a new -U that builds just the - targets from the local SConscript file. - - - Fixed use of sys.path so Python modules can be imported from - the SConscript directory. - - - Fix for using Aliases with the -u, -U and -D options. - - - Fix so that Nodes can be passed to SConscript files. - - From Moshe Zadka: - - - Changes for official Debian packaging. - - - -RELEASE 0.06 - Thu, 28 Mar 2002 01:24:29 -0600 - - From Charles Crain: - - - Fix command generators to expand construction variables. - - - Make FunctionAction arguments be Nodes, not strings. - - From Stephen Kennedy: - - - Performance: Use a dictionary, not a list, for a Node's parents. - - From Steven Knight: - - - Add .zip files to the packages we build. - - - Man page: document LIBS, fix a typo, document ARGUMENTS. - - - Added RANLIB and RANLIBFLAGS construction variables. Only use them - in ARCOM if there's a "ranlib" program on the system. - - - Add a configurable CFILESUFFIX for the Builder of .l and .y files - into C files. - - - Add a CXXFile Builder that turns .ll and .yy files into .cc files - (configurable via a CXXFILESUFFIX construction variable). - - - Use the POSIX-standard lex -t flag, not the GNU-specific -o flag. - (Bug reported by Russell Christensen.) - - - Fixed an exception when CPPPATH or LIBPATH is a null string. - (Bug reported by Richard Kiss.) - - - Add a --profile=FILE option to make profiling SCons easier. - - - Modify the new DVI builder to create .dvi files from LaTeX (.ltx - and .latex) files. - - - Add support for Aliases (phony targets). - - - Add a WhereIs() method for searching for path names to executables. - - - Add PDF and PostScript document builders. - - - Add support for compiling Fortran programs from a variety of - suffixes (a la GNU Make): .f, .F, .for, .FOR, .fpp and .FPP - - - Support a CPPFLAGS variable on all default commands that use the - C preprocessor. - - From Steve Leblanc: - - - Add support for the -U option. - - - Allow CPPPATH, LIBPATH and LIBS to be specified as white-space - separated strings. - - - Add a document builder to create .dvi files from TeX (.tex) files. - - From Anthony Roach: - - - Fix: Construction variables with values of 0 were incorrectly - interpolated as ''. - - - Support env['VAR'] to fetch construction variable values. - - - Man page: document Precious(). - - - -RELEASE 0.05 - Thu, 21 Feb 2002 16:50:03 -0600 - - From Chad Austin: - - - Set PROGSUFFIX to .exe under Cygwin. - - From Charles Crain: - - - Allow a library to specified as a command-line source file, not just - in the LIBS construction variable. - - - Compensate for a bug in os.path.normpath() that returns '' for './' - on WIN32. - - - More performance optimizations: cache #include lines from files, - eliminate unnecessary calls. - - - If a prefix or suffix contains white space, treat the resulting - concatenation as separate arguments. - - - Fix irregularities in the way we fetch DevStudio information from - the Windows registry, and in our registry error handling. - - From Steven Knight: - - - Flush stdout after print so it intermixes correctly with stderr - when redirected. - - - Allow Scanners to return a list of strings, and document how to - write your own Scanners. - - - Look up implicit (scanned) dependencies relative to the directory - of file being scanned. - - - Make writing .sconsign files more robust by first trying to write - to a temp file that gets renamed. - - - Create all of the directories for a list of targets before trying - to build any of the targets. - - - WIN32 portability fixes in tests. - - - Allow the list of variables exported to an SConscript file to be - a UserList, too. - - - Document the overlooked LIBPATH construction variable. - (Bug reported by Eicke Godehardt.) - - - Fix so that Ignore() ignores indirect, implicit dependencies - (included files), not just direct dependencies. - - - Put the man page in the Debian distribution. - - - Run HTML docs through tidy to clean up the HTML (for Konqueror). - - - Add preliminary support for Unicode strings. - - - Efficiency: don't scan dependencies more than once during the - walk of a tree. - - - Fix the -c option so it doesn't stop removing targets if one doesn't - already exist. - (Bug reported by Paul Connell.) - - - Fix the --debug=pdb option when run on Windows NT. - (Bug reported by Paul Connell.) - - - Add support for the -q option. - - From Steve Leblanc: - - - Add support for the -u option. - - - Add .cc and .hh file suffixes to the C Scanner. - - From Anthony Roach: - - - Make the scons script return an error code on failures. - - - Add support for using code to generate a command to build a target. - - - -RELEASE 0.04 - Wed, 30 Jan 2002 11:09:42 -0600 - - From Charles Crain: - - - Significant performance improvements in the Node.FS and - Scanner subsystems. - - - Fix signatures of binary files on Win32 systems. - - - Allow LIBS and LIBPATH to be strings, not just arrays. - - - Print a traceback if a Python-function builder throws an exception. - - From Steven Knight: - - - Fix using a directory as a Default(), and allow Default() to - support white space in file names for strings in arrays. - - - Man page updates: corrected some mistakes, documented various - missing Environment methods, alphabetized the construction - variables and other functions, defined begin and end macros for - the example sections, regularized white space separation, fixed - the use of Export() in the Multiple Variants example. - - - Function action fixes: None is now a successful return value. - Exceptions are now reported. Document function actions. - - - Add 'Action' and 'Scanner' to the global keywords so SConscript - files can use them too. - - - Removed the Wrapper class between Nodes and Walkers. - - - Add examples using Library, LIBS, and LIBPATH. - - - The C Scanner now always returns a sorted list of dependencies - so order changes don't cause unnecessary rebuilds. - - - Strip $(-$) bracketed text from command lines. Use this to - surround $_INCDIRS and $_LIBDIRS so we don't rebuild in response - to changes to -I or -L options. - - - Add the Ignore() method to ignore dependencies. - - - Provide an error message when a nonexistent target is specified - on the command line. - - - Remove targets before building them, and add an Environment - Precious() method to override that. - - - Eliminate redundant calls to the same builder when the target is a - list of targets: Add a ListBuilder class that wraps Builders to - handle lists atomically. Extend the Task class to support building - and updating multiple targets in a single Task. Simplify the - interface between Task and Taskmaster. - - - Add a --debug=pdb option to re-run SCons under the Python debugger. - - - Only compute a build signature once for each node. - - - Changes to our sys.path[] manipulation to support installation into - an arbitrary --prefix value. - - From Steve Leblanc: - - - Add var=value command-line arguments. - - - -RELEASE 0.03 - Fri, 11 Jan 2002 01:09:30 -0600 - - From Charles Crain: - - - Performance improvements in the Node.FS and Sig.Calculator classes. - - - Add the InstallAs() method. - - - Execute commands through an external interpreter (sh, cmd.exe, or - command.com) to handle redirection metacharacters. - - - Allow the user to supply a command handler. - - From Steven Knight: - - - Search both /usr/lib and /usr/local/lib for scons directories by - adding them both to sys.path, with whichever is in sys.prefix first. - - - Fix interpreting strings of multiple white-space separated file names - as separate file names, allowing prefixes and suffixes to be appended - to each individually. - - - Refactor to move CompositeBuilder initialization logic from the - factory wrapper to the __init__() method, and allow a Builder to - have both an action and a src_builder (or array of them). - - - Refactor BuilderBase.__call__() to separate Node creation/lookup - from initialization of the Node's builder information. - - - Add a CFile Builder object that supports turning lex (.l) and - yacc (.y) files into .c files. - - - Document: variable interpretation attributes; how to propogate - the user's environment variables to executed commands; how to - build variants in multiple BuildDirs. - - - Collect String, Dict, and List type-checking in common utility - routines so we can accept User{String,Dict,List}s all over. - - - Put the Action factory and classes into their own module. - - - Use one CPlusPlusAction in the Object Builder's action dictionary, - instead of letting it create multiple identical instances. - - - Document the Install() and InstallAs() methods. - - From Steve Leblanc: - - - Require that a Builder be given a name argument, supplying a - useful error message when it isn't. - - From Anthony Roach: - - - Add a "duplicate" keyword argument to BuildDir() that can be set - to prevent linking/copying source files into build directories. - - - Add a "--debug=tree" option to print an ASCII dependency tree. - - - Fetch the location of the Microsoft Visual C++ compiler(s) from - the Registry, instead of hard-coding the location. - - - Made Scanner objects take Nodes, not path names. - - - Have the C Scanner cache the #include file names instead of - (re-)scanning the file each time it's called. - - - Created a separate class for parent "nodes" of file system roots, - eliminating the need for separate is-parent-null checks everywhere. - - - Removed defined __hash__() and __cmp() methods from FS.Entry, in - favor of Python's more efficient built-in identity comparisons. - - - -RELEASE 0.02 - Sun, 23 Dec 2001 19:05:09 -0600 - - From Charles Crain: - - - Added the Install(), BuildDir(), and Export() methods. - - - Fix the -C option by delaying setting the top of the FS tree. - - - Avoid putting the directory path on the libraries in the LIBS - construction variable. - - - Added a GetBuildPath() method to return the full path to the - Node for a specified string. - - - Fixed variable substitution in CPPPATH and LIBPATH. - - From Steven Knight: - - - Fixed the version comment in the scons.bat (the UNIX geek used - # instead of @rem). - - - Fix to setup.py so it doesn't require a sys.argv[1] argument. - - - Provide make-like warning message for "command not found" and - similar errors. - - - Added an EXAMPLES section to the man page. - - - Make Default() targets properly relative to their SConscript - file's subdirectory. - - From Anthony Roach: - - - Documented CXXFLAGS, CXXCOM, and CPPPATH. - - - Fixed SCONS_LIB_DIR to work as documented. - - - Made Default() accept Nodes as arguments. - - - Changed Export() to make it easier to use. - - - Added the Import() and Return() methods. - - - -RELEASE 0.01 - Thu Dec 13 19:25:23 CST 2001 - -A brief overview of important functionality available in release 0.01: - - - C and C++ compilation on POSIX and Windows NT. - - - Automatic scanning of C/C++ source files for #include dependencies. - - - Support for building libraries; setting construction variables - allows creation of shared libraries. - - - Library and C preprocessor search paths. - - - File changes detected using MD5 signatures. - - - User-definable Builder objects for building files. - - - User-definable Scanner objects for scanning for dependencies. - - - Parallel build (-j) support. - - - Dependency cycles detected. - - - Linux packages available in RPM and Debian format. - - - Windows installer available. - - - -Copyright (c) 2001 - 2015 The SCons Foundation -src/CHANGES.txt rel_2.4.0:3365:9259ea1c13d7 2015/09/21 14:03:43 bdbaddog |