Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released

2020-07-04 Thread Bill Deegan
Eric,

Try pip install SCons==4.0
Does that make a difference?

Packaging has been completely rewritten for 4.0.0 so I'm not surprised
there's an issue or two in the field.
(the previous code was written before there was a pip... ;) and then
duct-taped and bailing wired.. so it needed a rewrite)

Ahh. Interesting because windows is case insensitive..

Please file an Issue.

Hoping to take a break tomorrow and I'll look at it on monday.. unless
someone else feels like taking a wack at fixing that.. ;)

-Bill

On Sat, Jul 4, 2020 at 7:41 PM Eric Fahlgren  wrote:

> First, Bill and Mats and everyone else, thanks for your continued
> development of SCons!
>
> I ran into a strange, probably Windows-specific issue upon installing
> 4.0.0.  I simply did "pip install scons==4.0.0" without issue, but when I
> ran "scons some_target", I got this:
>
> Traceback (most recent call last):
>   File "c:\program files\python38\lib\runpy.py", line 194, in
> _run_module_as_main
> return _run_code(code, main_globals, None,
>   File "c:\program files\python38\lib\runpy.py", line 87, in _run_code
> exec(code, run_globals)
>   File "C:\Program Files\Python38\Scripts\scons.exe\__main__.py", line 4,
> in 
> SCons.Script.main()
> ModuleNotFoundError: No module named 'SCons'
>
> It turns out that pip didn't name the installation directory
> "site-packages/*SCons*", but rather all-lower-case "site-packages/*scons*"
> (as it was with 3.1.2), so none of the run commands, scripts or tools will
> load.  I did "pip uninstall -y scons", made sure Lib/site-packages was
> clean, reinstalled 4.0.0 and everything was fine.  It appears that pip is
> not removing the old installation completely and leaving the top-level
> directory there with improper character case, but only when it does an
> "install over old".  I reproduced this a couple times, reinstalling 3.1 and
> then 4.0 over it to confirm.
>
> On Sat, Jul 4, 2020 at 3:57 PM Bill Deegan 
> wrote:
>
>>   A new SCons release, 4.0.0, is now available
>>   on the SCons download page:
>>
>>   https://scons.org/pages/download.html
>>
>>   Here is a summary of the changes since 3.1.2:
>>
>>   NEW FUNCTIONALITY
>>
>> - Added support for scanning multiple entries in an action string if
>>   IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
>> more thorough
>>   action scanning where every item in each command line is scanned to
>> determine
>>   if it is a non-source and non-target path and added to the list of
>> implicit dependencies
>>   for the target.
>> - Added new module SCons.Scanner.Python to allow scanning .py files.
>> - Added support for explicitly passing a name when creating Value()
>> nodes. This may be useful
>>   when the value can't be converted to a string or if having a name
>> is otherwise desirable.
>> - Added a new flag called "linedraw" for the command line argument
>>  "--tree"
>>   that instructs scons to use single line drawing characters to draw
>> the dependency tree.
>> - Add CompilationDatabase() builder in compilation_db tool.
>> Contributed by MongoDB.
>>   Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether
>> the files are absolute or relative
>>   paths.  Address Issue #3693 and #3694 found during development.
>> - Extended `Environment.Dump()` to select a format to serialize
>> construction variables (pretty, json).
>> - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
>>   which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
>> #else,
>>   #elif, #define, etc.)
>> - Experimental New Feature: Enable caching MSVC configuration
>>   If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
>>   SCons will cache the results of past calls to vcvarsall.bat to
>>   a file; integrates with existing memoizing of such vars.
>> - Preliminary Python 3.9 support.
>>
>>   DEPRECATED FUNCTIONALITY
>>
>> - Drop support for Python 2.7. SCons will be Python 3.5+ going
>> forward.
>> - Remove deprecated SourceCode()
>>
>>   CHANGED/ENHANCED EXISTING FUNCTIONALITY
>>
>> - Added check for SONAME in environment to setup symlinks correctly
>> (Github Issue #3246)
>> - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
>> SHLIBVERSIONFLAGS
>>   NOTE: If your build depends on the above you must now add to your
>> SHLIBVERSIONFLAGS
>> - Microsoft Visual Studio - switch to using uuid module to generate
>> GUIDs rather than hand rolled
>>   method using md5 directly.
>>   NOTE: This change affects the following builders' output. If your
>> build depends on the output of these builders
>>   you will likely see a rebuild.
>>   * Package() (with PACKAGETYPE='msi')
>>   * MSVSSolution()
>>   * MSVSProject()
>> - Improve Visual Studio solution/project generation code to add
>> support
>>   for a per-variant cppflags. Intellisense can be affected by
>> cppflags,
>> 

Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released

2020-07-04 Thread Eric Fahlgren
First, Bill and Mats and everyone else, thanks for your continued
development of SCons!

I ran into a strange, probably Windows-specific issue upon installing
4.0.0.  I simply did "pip install scons==4.0.0" without issue, but when I
ran "scons some_target", I got this:

Traceback (most recent call last):
  File "c:\program files\python38\lib\runpy.py", line 194, in
_run_module_as_main
return _run_code(code, main_globals, None,
  File "c:\program files\python38\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
  File "C:\Program Files\Python38\Scripts\scons.exe\__main__.py", line 4,
in 
SCons.Script.main()
ModuleNotFoundError: No module named 'SCons'

It turns out that pip didn't name the installation directory "site-packages/
*SCons*", but rather all-lower-case "site-packages/*scons*" (as it was with
3.1.2), so none of the run commands, scripts or tools will load.  I did
"pip uninstall -y scons", made sure Lib/site-packages was clean,
reinstalled 4.0.0 and everything was fine.  It appears that pip is not
removing the old installation completely and leaving the top-level
directory there with improper character case, but only when it does an
"install over old".  I reproduced this a couple times, reinstalling 3.1 and
then 4.0 over it to confirm.

On Sat, Jul 4, 2020 at 3:57 PM Bill Deegan 
wrote:

>   A new SCons release, 4.0.0, is now available
>   on the SCons download page:
>
>   https://scons.org/pages/download.html
>
>   Here is a summary of the changes since 3.1.2:
>
>   NEW FUNCTIONALITY
>
> - Added support for scanning multiple entries in an action string if
>   IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
> more thorough
>   action scanning where every item in each command line is scanned to
> determine
>   if it is a non-source and non-target path and added to the list of
> implicit dependencies
>   for the target.
> - Added new module SCons.Scanner.Python to allow scanning .py files.
> - Added support for explicitly passing a name when creating Value()
> nodes. This may be useful
>   when the value can't be converted to a string or if having a name is
> otherwise desirable.
> - Added a new flag called "linedraw" for the command line argument
>  "--tree"
>   that instructs scons to use single line drawing characters to draw
> the dependency tree.
> - Add CompilationDatabase() builder in compilation_db tool.
> Contributed by MongoDB.
>   Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the
> files are absolute or relative
>   paths.  Address Issue #3693 and #3694 found during development.
> - Extended `Environment.Dump()` to select a format to serialize
> construction variables (pretty, json).
> - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
>   which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
> #else,
>   #elif, #define, etc.)
> - Experimental New Feature: Enable caching MSVC configuration
>   If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
>   SCons will cache the results of past calls to vcvarsall.bat to
>   a file; integrates with existing memoizing of such vars.
> - Preliminary Python 3.9 support.
>
>   DEPRECATED FUNCTIONALITY
>
> - Drop support for Python 2.7. SCons will be Python 3.5+ going forward.
> - Remove deprecated SourceCode()
>
>   CHANGED/ENHANCED EXISTING FUNCTIONALITY
>
> - Added check for SONAME in environment to setup symlinks correctly
> (Github Issue #3246)
> - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
> SHLIBVERSIONFLAGS
>   NOTE: If your build depends on the above you must now add to your
> SHLIBVERSIONFLAGS
> - Microsoft Visual Studio - switch to using uuid module to generate
> GUIDs rather than hand rolled
>   method using md5 directly.
>   NOTE: This change affects the following builders' output. If your
> build depends on the output of these builders
>   you will likely see a rebuild.
>   * Package() (with PACKAGETYPE='msi')
>   * MSVSSolution()
>   * MSVSProject()
> - Improve Visual Studio solution/project generation code to add support
>   for a per-variant cppflags. Intellisense can be affected by cppflags,
>   this is especially important when it comes to /std:c++* which
> specifies
>   what C++ standard version to target. SCons will append
> /Zc:__cplusplus
>   to the project's cppflags when a /std:c++* flag is found as this is
>   required for intellisense to use the C++ standard version from
> cppflags.
> - Allow user specified location for vswhere.exe specified by VSWHERE.
>   NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink'
> tool(s) are initialized to have any effect.
> - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports
> python 3.4+)
>   and skipping Python 3.8's new pickle protocol 5 whose main advantage
> is for out-o

Re: [Scons-dev] [Scons-users] SCons 4.0.0 Released

2020-07-04 Thread Gary Oberbrunner
Congratulations! SCons 4.0!!!

On Sat, Jul 4, 2020 at 6:57 PM Bill Deegan 
wrote:

>   A new SCons release, 4.0.0, is now available
>   on the SCons download page:
>
>   https://scons.org/pages/download.html
>
>   Here is a summary of the changes since 3.1.2:
>
>   NEW FUNCTIONALITY
>
> - Added support for scanning multiple entries in an action string if
>   IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables
> more thorough
>   action scanning where every item in each command line is scanned to
> determine
>   if it is a non-source and non-target path and added to the list of
> implicit dependencies
>   for the target.
> - Added new module SCons.Scanner.Python to allow scanning .py files.
> - Added support for explicitly passing a name when creating Value()
> nodes. This may be useful
>   when the value can't be converted to a string or if having a name is
> otherwise desirable.
> - Added a new flag called "linedraw" for the command line argument
>  "--tree"
>   that instructs scons to use single line drawing characters to draw
> the dependency tree.
> - Add CompilationDatabase() builder in compilation_db tool.
> Contributed by MongoDB.
>   Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the
> files are absolute or relative
>   paths.  Address Issue #3693 and #3694 found during development.
> - Extended `Environment.Dump()` to select a format to serialize
> construction variables (pretty, json).
> - New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
>   which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
> #else,
>   #elif, #define, etc.)
> - Experimental New Feature: Enable caching MSVC configuration
>   If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
>   SCons will cache the results of past calls to vcvarsall.bat to
>   a file; integrates with existing memoizing of such vars.
> - Preliminary Python 3.9 support.
>
>   DEPRECATED FUNCTIONALITY
>
> - Drop support for Python 2.7. SCons will be Python 3.5+ going forward.
> - Remove deprecated SourceCode()
>
>   CHANGED/ENHANCED EXISTING FUNCTIONALITY
>
> - Added check for SONAME in environment to setup symlinks correctly
> (Github Issue #3246)
> - Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from
> SHLIBVERSIONFLAGS
>   NOTE: If your build depends on the above you must now add to your
> SHLIBVERSIONFLAGS
> - Microsoft Visual Studio - switch to using uuid module to generate
> GUIDs rather than hand rolled
>   method using md5 directly.
>   NOTE: This change affects the following builders' output. If your
> build depends on the output of these builders
>   you will likely see a rebuild.
>   * Package() (with PACKAGETYPE='msi')
>   * MSVSSolution()
>   * MSVSProject()
> - Improve Visual Studio solution/project generation code to add support
>   for a per-variant cppflags. Intellisense can be affected by cppflags,
>   this is especially important when it comes to /std:c++* which
> specifies
>   what C++ standard version to target. SCons will append
> /Zc:__cplusplus
>   to the project's cppflags when a /std:c++* flag is found as this is
>   required for intellisense to use the C++ standard version from
> cppflags.
> - Allow user specified location for vswhere.exe specified by VSWHERE.
>   NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink'
> tool(s) are initialized to have any effect.
> - Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports
> python 3.4+)
>   and skipping Python 3.8's new pickle protocol 5 whose main advantage
> is for out-of-band data buffers.
>   NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get
> a a pickle protocol error. Remove your
>   .sconsign.dblite. You will end up with a full rebuild.
> - MSVC updates: When there are multiple product installations (e.g,
> Community and
>   Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional,
>   or Community installation will be selected before a Build Tools
> installation when
>   "14.1" or "14.2" is requested, respectively. (GH Issue #3699).
> - MSVC updates: When there are multiple product installations of MSVC
> 2017 (e.g.,
>   Community and Express), 2017 Express is no longer returned when
> "14.1" is
>   requested.  Only 2017 Express will be returned when "14.1Exp" is
> requested.
>   (GH Issue #3699).
> - MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to
> msvc
>   tool setup if set in environment. Add Powershell to default env
>   (used to call telemetry script).
> - Renamed as.py to asm.py and left redirecting tool.  'as' is a
> reserved word and so
>   changing the name was required as we wanted to import symbols for
> use in compilation_db
>   tool.
> - Add no_progress (-Q) option as a

[Scons-dev] SCons 4.0.0 Released

2020-07-04 Thread Bill Deegan
  A new SCons release, 4.0.0, is now available
  on the SCons download page:

  https://scons.org/pages/download.html

  Here is a summary of the changes since 3.1.2:

  NEW FUNCTIONALITY

- Added support for scanning multiple entries in an action string if
  IMPLICIT_COMMAND_DEPENDENCIES is set to 2 or 'all'. This enables more
thorough
  action scanning where every item in each command line is scanned to
determine
  if it is a non-source and non-target path and added to the list of
implicit dependencies
  for the target.
- Added new module SCons.Scanner.Python to allow scanning .py files.
- Added support for explicitly passing a name when creating Value()
nodes. This may be useful
  when the value can't be converted to a string or if having a name is
otherwise desirable.
- Added a new flag called "linedraw" for the command line argument
 "--tree"
  that instructs scons to use single line drawing characters to draw
the dependency tree.
- Add CompilationDatabase() builder in compilation_db tool. Contributed
by MongoDB.
  Setting COMPILATIONDB_USE_ABSPATH to True|False controls whether the
files are absolute or relative
  paths.  Address Issue #3693 and #3694 found during development.
- Extended `Environment.Dump()` to select a format to serialize
construction variables (pretty, json).
- New conditional C Scanner (`SCons.Scanner.C.CConditionalScanner()`)
  which interprets C/C Preprocessor conditional syntax (#ifdef, #if,
#else,
  #elif, #define, etc.)
- Experimental New Feature: Enable caching MSVC configuration
  If SCONS_CACHE_MSVC_CONFIG shell environment variable is set,
  SCons will cache the results of past calls to vcvarsall.bat to
  a file; integrates with existing memoizing of such vars.
- Preliminary Python 3.9 support.

  DEPRECATED FUNCTIONALITY

- Drop support for Python 2.7. SCons will be Python 3.5+ going forward.
- Remove deprecated SourceCode()

  CHANGED/ENHANCED EXISTING FUNCTIONALITY

- Added check for SONAME in environment to setup symlinks correctly
(Github Issue #3246)
- Resolve Issue #3248 - Removing '-Wl,-Bsymbolic' from SHLIBVERSIONFLAGS
  NOTE: If your build depends on the above you must now add to your
SHLIBVERSIONFLAGS
- Microsoft Visual Studio - switch to using uuid module to generate
GUIDs rather than hand rolled
  method using md5 directly.
  NOTE: This change affects the following builders' output. If your
build depends on the output of these builders
  you will likely see a rebuild.
  * Package() (with PACKAGETYPE='msi')
  * MSVSSolution()
  * MSVSProject()
- Improve Visual Studio solution/project generation code to add support
  for a per-variant cppflags. Intellisense can be affected by cppflags,
  this is especially important when it comes to /std:c++* which
specifies
  what C++ standard version to target. SCons will append /Zc:__cplusplus
  to the project's cppflags when a /std:c++* flag is found as this is
  required for intellisense to use the C++ standard version from
cppflags.
- Allow user specified location for vswhere.exe specified by VSWHERE.
  NOTE: This must be set at the time the 'msvc' 'msvs' and/or 'mslink'
tool(s) are initialized to have any effect.
- Fixed Github Issue 3628 - Hardcoding pickle protocol to 4 (supports
python 3.4+)
  and skipping Python 3.8's new pickle protocol 5 whose main advantage
is for out-of-band data buffers.
  NOTE: If you used Python 3.8 with SCons 3.0.0 or above, you may get a
a pickle protocol error. Remove your
  .sconsign.dblite. You will end up with a full rebuild.
- MSVC updates: When there are multiple product installations (e.g,
Community and
  Build Tools) of MSVC 2017 or MSVC 2019, an Enterprise, Professional,
  or Community installation will be selected before a Build Tools
installation when
  "14.1" or "14.2" is requested, respectively. (GH Issue #3699).
- MSVC updates: When there are multiple product installations of MSVC
2017 (e.g.,
  Community and Express), 2017 Express is no longer returned when
"14.1" is
  requested.  Only 2017 Express will be returned when "14.1Exp" is
requested.
  (GH Issue #3699).
- MSVC updates: pass on VSCMD_DEBUG and VSCMD_SKIP_SENDTELEMETRY to msvc
  tool setup if set in environment. Add Powershell to default env
  (used to call telemetry script).
- Renamed as.py to asm.py and left redirecting tool.  'as' is a
reserved word and so
  changing the name was required as we wanted to import symbols for use
in compilation_db
  tool.
- Add no_progress (-Q) option as a set-able option. However, setting it
in the
  SConstruct/SConscript will still cause "scons: Reading SConscript
files ..." to be
  printed, since the option is not set when the build scripts first get
read.
- Docbook builder provides a fallback if lxml fails to generate