Scons

Latest version: v4.8.0

Safety actively analyzes 681881 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 11 of 13

0.93

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.

0.92

Not secure
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).

0.91

Not secure
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.

0.90

Not secure
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.

0.14

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.

0.13

Not secure
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.

Page 11 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.