./devel/scons4, Python-based, open-source build system

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.7.0, Package name: py311-scons-4.7.0, Maintainer: gdt

SCons is an Open Source software construction tool--that is, a build tool;
an improved substitute for the classic Make utility; a better way to build
software.


Master sites:

Filesize: 3145.241 KB

Version history: (Expand)


CVS history: (Expand)


   2024-04-19 13:46:29 by Nia Alarie | Files touched by this commit (1)
Log message:
scons4: Add support for BUILD_DIRS and friends.
   2024-04-06 08:32:56 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-scons: update to 4.7.0.

NEW FUNCTIONALITY

    Method unlink_files was added to the TestCmd class that unlinks a list of files
    from a specified directory. An attempt to unlink a file is made only when the
    file exists; otherwise, the file is ignored.

CHANGED/ENHANCED EXISTING FUNCTIONALITY

    Add an optional argument list string to configure's CheckFunc method so
    that the generated function argument list matches the function's
    prototype when including a header file. Fixes GH Issue #4320
    Now supports pre-release Python 3.13
    Support for Python versions without support for the threading package has \ 
been removed
    Dropped three unused warning classes: DeprecatedSourceCodeWarning,
    TaskmasterNeedsExecuteWarning, DeprecatedMissingSConscriptWarning.
    Two warning classes that are actually used were added to manpage section on
    enabling warnings (cache-cleanup-error, future-reserved-variable).

FIXES

    Fix of the --debug=sconscript option to return exist statements when using return
    statement with stop flag enabled
    MSVS: prevent overwriting the SCons environment variable SCONS_HOME with the OS
    environment value of SCONS_HOME in the msvs tool.
    MSVC: Fix the detection of Visual Studio 2015 Express ('14.0Exp') by adding a
    registry key definition and updating the installation root-relative registry \ 
value
    at runtime for the location of the VC folder.
    MSVS: Fix the msvs project generation test for MSVS 6.0 to use the correct \ 
name of
    the generated project file.
    MSVS: Fix the msvs project generation test scripts so that "false \ 
positive" tests
    results are not possible when the initial build is successful and the \ 
command-line
    build of the project file fails.
    On Windows platform, when collecting command output (Configure checks),
    make sure decoding of bytes doesn't fail.
    Documentation indicated that both Pseudo() and env.Pseudo() were usable,
    but Pseudo() did not work; is now enabled.
    Improve handling of file data that SCons itself processes - as in
    scanners - try harder to decode non-UTF-8 text.
    PyPackageDir no longer fails if passed a module name which cannot be found,
    now returns None.
    Add locking around creation of CacheDir config file. Fixes issue #4489.

IMPROVEMENTS

    Use of NotImplemented instead of NotImplementedError for special methods
    of _ListVariable class
    The NewParallel scheduler is now the default, the tm_v2 flag is removed,
    and the old scheduler is opt-in under --experimental=legacy_sched. Additionally,
    the new scheduler is now used for -j1 builds as well.
    NOTE: This should significantly improve SCons performance for larger \ 
parallel builds
    (Larger -j values)
    CacheDir writes no longer happen within the taskmaster critical section, and \ 
therefore
    can run in parallel with both other CacheDir writes and the taskmaster DAG walk.
    The NewParallel scheduler now only adds threads as new work requiring execution
    is discovered, up to the limit set by -j. This should reduce resource utilization
    when the achievable parallelism in the DAG is less than the -j limit.
    Dumping an environment with json formatting will now explicitly specify if a \ 
given
    value cannot be serialized.

PACKAGING

    Remove unnecessary dependencies on pypi packages from setup.cfg
    SCons documentation build can now be controlled through SKIP_DOC
    variable - rather than just true/false can now specify
    skip none, skip all, skip pdf docs, skip api docs.

DOCUMENTATION

    Fixed the Scanner examples in the User Guide to be runnable and added
    some more explanation. Clarified discussion of the scanner function in
    the Scanner Objects section of the manpage.
    The manpage entry for Pseudo was clarified.
    The manpage entry for SharedLibrary was clarified.
    Update API docs for Warnings framework; add two warns to manpage
    enable/disable control.
    More consistent use of &Python; in the manpage. A few links added.
    A warning about overwriting env['ENV'] and one about Configure
    checks possibly not running in in no-exec mode also added.
    Clarify how SCons finds the project top directory, and what that is used for.
    Clarify MergeFlags usage of a dict argument.

DEVELOPMENT

    Fix sphinx config to handle SCons versions with post such as: 4.6.0.post1
    Created SCons.Util.sctyping to contain complex type information, allowing
    for repo-wide type hinting without causing cyclical dependencies.
   2024-01-02 09:43:10 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
scons4: update to 4.6.0.post1

This new release removes the pycache files that were accidentally
included in the previous one.
   2023-12-30 21:01:48 by Ryo ONODERA | Files touched by this commit (1)
Log message:
scons4: Fix install with non-Python 3.11

Tarball has prebuild cache and it will be installed unconditionally
for Python 3.10 or 3.12, for example.
And it does not much PLIST.
Remove it.
   2023-12-30 11:47:36 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
py-scons: update to 4.6.0.

NEW FUNCTIONALITY

    D compilers : added support for generation of .di interface files.
    New variables DI_FILE_DIR, DI_FILE_DIR_PREFIX, DI_FILE_DIR_SUFFIX,
    DI_FILE_SUFFIX.
    MSVC: If available, native arm64 tools will be used on arm64 hosts for VS2022.
    MSVC: If necessary, automatically define VSCMD_SKIP_SENDTELEMETRY for VS2019 \ 
and later
    on arm64 hosts when using an arm (32-bit) build of python to prevent a powershell
    error pop-up window (powershell dll not found).
    Add a LIBLITERALPREFIX variable which can be set to the linker's
    prefix for considering a library argument unmodified (e.g. for the
    GNU linker, the ':' in '-l:libfoo.a'). Fixes Github issue #3951.

CHANGED/ENHANCED EXISTING FUNCTIONALITY

    When debugging (--debug=pdb), the filenames SConstruct and SConscript
    are now recognized when manipulating breakpoints. Previously,
    only a full pathname to an sconscript file worked, as pdb requires
    a .py extension to open a file that is not an absolute path.
    Three unused non-public methods of the Environment Base class
    were dropped: get_src_sig_type, get_tgt_sig_type, _changed_source.
    These were unused remnants of the previously removed SourceSignatures
    and TargetSignatures features (dropped in 3.1.2).
    The --debug flag now has a 'json' option which will write information
    generated by --debug={count, memory, time, action-timestamps} and about
    the build.
    Obsoleted YACCVCGFILESUFFIX, it's being replaced by YACC_GRAPH_FILE_SUFFIX.
    If YACC_GRAPH_FILE_SUFFIX is not set, it will respect YACCVCGFILESUFFIX.
    The yacc tool now understands the bison behavior of --header, --defines
    and --graph being called without an option-argument as being synonyms
    for -d (first two) and -g. -H also recognized as a synonym for -d.
    Default value for $YACC_GRAPH_FILE_SUFFIX changed to '.gv' to match
    current bison default (since bison 3.8). Set this variable to '.dot'
    if using byacc. Fixes #4326 and #4327.
    MSVC: When trying to find a valid msvc batch file, the existence of the msvc \ 
compiler
    executable is verified for VS6 to VS2015 to avoid executing the msvc batch \ 
file when
    the host/target tool is known not to be present. Always check that the msvc \ 
compiler
    executable is found on the msvc script environment path after running the \ 
msvc batch
    file. This is predominately needed for recent versions of Visual Studio \ 
where the msvc
    batch file exists but an individual msvc toolset may not support the host/target
    architecture combination. For example, when using VS2022 on arm64, the arm64 \ 
native
    tools are only installed for the 14.3x toolsets.
    MSVC: When the msvc compiler executable is not found during setup of the msvc
    environment, the warning message issued takes into account whether or not a
    possibly erroneous compiler executable was already present in the scons \ 
environment
    path. See CHANGES.txt for details.
    Extend range of recognized Java versions to 20.
    Builder calls (like Program()) now accept pathlib objects in source lists.
    The Help() function now takes an additional keyword argument keep_local:
    when starting to build a help message, you can now retain help from AddOption
    calls (options added for the project_, but omit help for SCons' own cmdline
    options with "Help(newtext, append=True, local_only=True)".
    Calling SConscript() with a nonexistent file is now an error.
    Previously this succeeded - prior to SCons 3.0, silently; since 3.0, with
    a warning. Developers can still instruct such an SConscript() call not
    to fail by being explicit: pass keyword argument "must_exist=False".
    The "--warn=missing-sconscript" commandline option is no longer \ 
available
    as the warning was part of the transitional phase.
    Add missing directories to searched paths for mingw installs
    SCons.Util.types renamed to to SCons.Util.sctypes to avoid any possible
    confusion with the Python stdlib "types" module. Note that it was \ 
briefly
    (for 4.5.x only) possible to import directly from SCons.Util.types,
    although the preferred usage remains to import from SCons.Util only.
    Any code that did the direct import will have to change to import from
    SCons.Util.sctypes.
    Add JDK 21 LTS support
    The newly added --debug=sconscript option (new) will output notices when
    entering an exiting each SConscript as they are processed.

FIXES

    Fixed: when using the mingw tool, if an msys2 Python is used (os.sep
    is '/' rather than the Windows default ''), certain Configure checks
    could fail due to the construction of the path to run the compiled check.
    C scanner's dictifyCPPDEFINES routine did not understand the possible
    combinations of CPPDEFINES - not aware of a "name=value" string either
    embedded in a sequence, or by itself. The conditional C scanner thus
    did not always properly apply the defines. The regular C scanner does
    not use these, so was not affected. [fixes #4193]
    MSVC: The installed msvc list is calculated once and cached. There was an \ 
indirect
    dependency on the target architecture when determining if each version of msvc
    was installed based on the initial invocation. It was possible that an msvc \ 
instance
    would not be considered installed due to the tools for the requested target
    architecture not being installed. The initial call to construct the \ 
installed msvc
    list now uses an undefined target architecture to evaluate all potential \ 
host/target
    combinations when evaluating if the msvc tools are installed for a given \ 
Visual Studio
    installation.
    MSVC: Erroneous construction of the installed msvc list (as described above) \ 
caused an
    index error in the msvc support code. An explicit check was added to prevent \ 
indexing
    into an empty list. Fixes #4312.
    MSVC: The search for the msvc compiler executable (cl.exe) no longer inspects the
    OS system path in certain situations when setting up the msvc environment.
    MSCommon: Test SConfTests.py would fail when mscommon debugging was enabled \ 
via the
    MSVC_MSCOMMON_DEBUG environment variable. The mscommon logging filter class \ 
registered
    with the python logging module was refactored to prevent test failure.
    MSVS: Add arm64 to the MSVS supported architectures list for VS2017 and \ 
later to be
    consistent with the current documentation of MSVS_ARCH.
    FORTRAN: Fix gfortran tool initialization. Defaults to using binary named \ 
gfortran
    as would be expected, and properly set's SHFORTRAN flags to include -fPIC
    where previously it was only doing so for the other fortran versions (F77,..)
    MSCommon: Added more error handling while reading msvc config cache.
    (Enabled/specified by SCONS_CACHE_MSVC_CONFIG).
    The existing cache will be discarded if there's a decode error reading it.
    It's possible there's a race condition creating this issue it in certain CI \ 
builds.
    Fixed: race condition in Mkdir which can happen when two SConscript
    are processed simultaneously by two separate build commands.

IMPROVEMENTS

    Now tries to find mingw if it comes from Chocolatey install of msys2.
    MSVC: Module imports were changed from a relative import to a top-level
    absolute import in the following Microsoft tools: midl, mslib, mslink, \ 
mssdk, msvc,
    msvs. Moving any of these tools that used relative imports to the scons site \ 
tools
    folder would fail on import (i.e., the relative import paths become invalid when
    moved).

PACKAGING

    The build of scons now matches the help text displayed - the targets
    listed there can all now be given as a target to build (except for
    the two full source balls; the source tar.gz is currently generated directly
    by the GitHub release process).

DOCUMENTATION

    Aligned manpage signature for Alias function to match implementation -
    if the previous targets parameter had been used as a keyword argument,
    the results would be incorrect (does not apply to positional argument
    usage, which had no problem).
    Changed the message about scons -H to clarify it shows built-in options only.
    Cachedir description updated.
    Updated the first two chapters on building with SCons in the User Guide.
    Clarify that exported variables are shared - if mutable, changes made in
    an SConscript are visible everywhere that takes a refereence to that object.
    Update PCH builder docs with some usage notes.

DEVELOPMENT

    SCons test runner now uses pathlib to normalize and compare paths
    to test files, which allows test lists, exclude lists, and tests on
    the command line to "not care" about the OS convention for pathname
    separators.
    Class ActionBase is now an abstract base class to more accurately
    reflect its usage. Derived _ActionAction inherits the ABC, so it
    now declares (actually raises NotImplementedError) two methods it
    doesn't use so it can be instantiated by unittests and others.
    Added more type annotations to internal routines.
    Cleaned up dblite module (checker warnings, etc.).
    TeX tests: skip tests that use makeindex or epstopdf not installed, or
    if kpsewhich glossaries.sty fails.
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-07-27 12:16:39 by Adam Ciarcinski | Files touched by this commit (1)
Log message:
scons4: use INSTALL_TARGET in build.mk
   2023-07-24 18:40:47 by Thomas Klausner | Files touched by this commit (1)
Log message:
scons4: allow disabling the install target

not all scons project are set up for this