Scons

Latest version: v4.7.0

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

Scan your dependencies

Page 12 of 13

0.11

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

0.10

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.

0.09

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.

0.08

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.

0.07

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.

0.06

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().

Page 12 of 13

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.