A new SCons checkpoint release, 3.1.0, is now available on the SCons download page: https://scons.org/pages/download.html Here is a summary of the changes since 3.0.5: NEW FUNCTIONALITY - Added variable TEMPFILEARGJOIN to specify how to join arguments written to temp files used when command lines exceed MAXLINELENGTH when the command uses $TEMPFILE{...} - Support for MSVC 2019 - Upgraded and improved Visual Studio solution/project generation code using the MSVSProject builder. - Added support for Visual Studio 2017 and 2019. - Added support for the following per-variant parameters to the builder: - cpppaths: Provides per-variant include paths. - cppdefines: Provides per-variant preprocessor definitions. CHANGED/ENHANCED EXISTING FUNCTIONALITY - Fix performance degradation for MD5-timestamp decider. NOTE: This changes the Decider() function arguments. From: def my_decider(dependency, target, prev_ni): To: def my_decider(dependency, target, prev_ni, repo_node): Where repo_node is the repository (or other) node to use to check if the node is out of date instead of dependency. - Enhanced --debug=explain output. Now the separate components of the dependency list are split up as follows: scons: rebuilding `file3' because: the dependency order changed: ->Sources Old:xxx New:zzz Old:yyy New:yyy Old:zzz New:xxx ->Depends ->Implicit Old:/usr/bin/python New:/usr/bin/python - Changed: Pseudo-builders now inherit OverrideEnvironments. For example when calling a pseudo-builder from another pseudo-builder the override variables passed to the first pseudo-builder call had to be explicitly passed on to the internal pseudo-builder call. Now the second pseudo-builder call will automatically inherit these override values. FIXES - Fix Issue #3350 - SCons Exception EnvironmentError is conflicting with Python's EnvironmentError. - Fix spurious rebuilds on second build for cases where builder has > 1 target and the source file is generated. This was causing the > 1th target to not have it's implicit list cleared when the source file was actually built, leaving an implicit list similar to follows for 2nd and higher target ['/usr/bin/python', 'xxx', 'yyy', 'zzz'] This was getting persisted to SConsign and on rebuild it would be corrected to be similar to this ['zzz', 'yyy', 'xxx', '/usr/bin/python'] Which would trigger a rebuild because the order changed. The fix involved added logic to mark all shared targets as peers and then ensure they're implicit list is all cleared together. - Fix Issue #3349 - SCons Exception EnvironmentError is conflicting with Python's EnvironmentError. Renamed to SConsEnvironmentError - Fix Issue #3350 - mslink failing when too many objects. This is resolved by adding TEMPFILEARGJOIN variable which specifies what character to join all the argements output into the tempfile. The default remains a space when mslink, msvc, or mslib tools are loaded they change the TEMPFILEARGJOIN to be a line separator (\r\n on win32) - Additional fix to issue #3135 - Also handle 'pure' and 'elemental' type bound procedures - Fix handling of Visual Studio Compilers to properly reject any unknown HOST_PLATFORM or TARGET_PLATFORM - Enable LaTeX scanner to find more than one include per line under which they would be observed), or major code cleanups Thanks to CURLY, LARRY, and MOE for their contributions to this release. Contributors are listed alphabetically by their last name. Copyright (c) 2001 - 2019 The SCons Foundation src/RELEASE.txt e724ae812eb96f4858a132f5b8c769724744faf6 2019-07-21 00:04:47 bdeegan