Surround the `CXX` path with double quotes to support spaces in the path.
Otherwise if the `CXX` variable is set to a path containing spaces like
```
C:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe
```
the following error message is printed:
```
'C:/Program' is not recognized as an internal or external command,
operable program or batch file.
```
Using pygments.rb fails on Ruby3 because of missing class create
methods. Which makes using the same script for ruby2 and ruby3
a problem. We aren't using pygments currently anyway, so
disable it for now.
This change complements the build instructions in the CONTRIBUTING.adoc,
where it is explained to bootstrap the 'stable' engine to
create b2 at the root.
Then, run one of the
two ways to build this be engine.
You can either (a) run b2 b2 at the root,
or (b) run build.sh/bat in src/engine.
Apparently, neither src/engine nor ./src/engine is taken as relative path
by VS Code and leads to task failure:
Executing task: ./build.sh
The terminal process failed to launch: Starting directory (cwd) /src/engine does not exist.
* src/tools/python.jam
(compute-default-paths): When the python include folder without any
suffix does not exist, but one with a m-suffix does, use the latter
Re-introduces functionality that was present in B2, but removed when the "" feature was introduced
Previously, generators could return a property-set as the first item in the result list, this feature removed that. It doesn't seem clear to me that removing this functionality was intentional or necessary to make the feature work. I suspect it was overlooked because the built-in generators did not utilize this functionality that the system supported
Adding the variant information to the configure messages caused a lot of
long output. Avoid most of the long output by removing the data output
duplication and summarizing the variants as notes below the configure
items.
Before this indirect rule references in features like
"-<conditional>@global.my-rule" had no effect. This was due to such
references being contextually encoded and evaluated. Hence every
reference was different and nothing could be removed. This change
makes it such that those indirect references do not use the invocation
context to compare for the removal of the inherited features. And hence,
allowing them to work.
Fixes#709
This change removes the "hard wired" set of features that are relevant
for a configure check. And instead uses the dynamic base properties
of the target property set. Hence always giving the minimal set of
unique properties for the configure check. This also adds output to
the configure items showing what that feature set is.
fixes#582