Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSVC enhancement to add all remaining msvc batch file command-line options as SCons variables #4174

Merged
merged 111 commits into from
Jul 25, 2022
Merged
Show file tree
Hide file tree
Changes from 95 commits
Commits
Show all changes
111 commits
Select commit Hold shift + click to select a range
3a760ae
Initial support for msvc batch file arguments
jcbrill Jun 12, 2022
49d6e9a
Fix sider complaints
jcbrill Jun 12, 2022
ef1cf08
Convert VS constants to namedtuples. Update debug message content.
jcbrill Jun 12, 2022
b9c8f0c
Expand data structures and rework version comparisons and messages.
jcbrill Jun 13, 2022
74740d2
Detect multiple declarations between MSVC_SCRIPT_ARGS and new variabl…
jcbrill Jun 14, 2022
7d195b6
Convert SortOrder class to enum
jcbrill Jun 14, 2022
7b8a915
Disable MSVC_TOOLSET_DEFAULT_VCVARSVER
jcbrill Jun 14, 2022
5b8d1c4
Change IOError to OSError
jcbrill Jun 14, 2022
5187917
Add SDK version support and validate all arguments.
jcbrill Jun 16, 2022
33bef70
Rename msvc batch platform (uwp/store/desktop) to platform_type.
jcbrill Jun 16, 2022
716f93a
Update comments
jcbrill Jun 16, 2022
ac6045d
Add dispatch class for reset and verify methods. Verify data structu…
jcbrill Jun 16, 2022
126a34e
Merge branch 'master' into jbrill-msvc-batchargs
jcbrill Jun 16, 2022
736c7e5
Rename Manager to Dispatcher
jcbrill Jun 16, 2022
a5cb849
Remove unnecessary variable initialization
jcbrill Jun 16, 2022
27cd6c4
Update boolean symbols
jcbrill Jun 17, 2022
94b23f7
Rename _Const to _Config. Rework msvc sdk version function. Minor c…
jcbrill Jun 20, 2022
dbd3018
Fix windows SDK reference
jcbrill Jun 20, 2022
010c2ad
Refactor recent portions of vc.py into MSVC module
jcbrill Jun 20, 2022
14ee60c
Fix typo in module name
jcbrill Jun 20, 2022
9619adb
Cleanup MSCommon/vc imports and move Dispatcher imports and registration
jcbrill Jun 20, 2022
a7c56ce
Fix msvc notfound policy module path for test
jcbrill Jun 20, 2022
f6a7b84
Add global for cache reset (classmethod to module omission) and remov…
jcbrill Jun 21, 2022
dd328cf
Suppress sider imported but unused for namespace. Restrict MSVC_UWP_A…
jcbrill Jun 21, 2022
5dd220b
Add internal, undocumented SCONS_CACHE_MSVC_FORCE_DEFAULTS environmen…
jcbrill Jun 21, 2022
ac9b547
Consider MSVC_TOOLSET_VERSION specification intent to use msvc tools.…
jcbrill Jun 21, 2022
377e815
Comment out BatchFileExecutionWarning definition and invocation.
jcbrill Jun 21, 2022
016e7f7
Update flake8 F401 placement
jcbrill Jun 21, 2022
56bd50d
Add comment and import one-by-one for msvc notfound policy and flake8…
jcbrill Jun 21, 2022
ad7a59d
Fix sider issue
jcbrill Jun 21, 2022
a5938cc
Move SCONS_CACHE_MSVC_FORCE_DEFAULTS environment variable query to MS…
jcbrill Jun 21, 2022
52e349c
Remove debug messages that by default are noisy.
jcbrill Jun 21, 2022
7683a2f
Remove MSVC_TOOLSET_VERSION from intent to use msvc tools (attached t…
jcbrill Jun 21, 2022
98cf01f
Reorder function declarations
jcbrill Jun 22, 2022
1de714a
Construction variable documentation additions and modifications.
jcbrill Jun 23, 2022
f99f7ca
Construction variable documentation additions and modifications.
jcbrill Jun 23, 2022
623cdba
Documentation updates [ci skip]
jcbrill Jun 24, 2022
607d719
Minor documentation update based on stress tests [ci skip]
jcbrill Jun 25, 2022
0b5f192
Merge branch 'master' into jbrill-msvc-batchargs
jcbrill Jun 26, 2022
d98f0fa
Update CHANGES.txt and RELEASE.txt
jcbrill Jun 26, 2022
7a38a4b
Set global lxml etree XSLT maximum traversal depth. Update generated …
jcbrill Jun 26, 2022
20a092f
Add blurb for additional MSVC_UWP_APP values accepted.
jcbrill Jun 26, 2022
2e2b464
Rework SxS toolset version support and vcvars bug fix handling. Upda…
jcbrill Jun 27, 2022
b94e801
Move verify invocation to last line of vc.py. Add verify method to C…
jcbrill Jun 27, 2022
90922c1
Add docstrings to MSVC/Util.py methods.
jcbrill Jun 27, 2022
d5a2a52
Additional validation for MSVC_SDK_VERSION and MSVC_SPECTRE_LIBS. Ad…
jcbrill Jun 28, 2022
f500d2e
Fix sider issue.
jcbrill Jun 28, 2022
8dd2c43
Use msvc version prefix instead of version prefix for internal dictio…
jcbrill Jun 29, 2022
a63c1cf
Add 14.0 toolset registry check as done in msvc vsvars140.bat.
jcbrill Jun 29, 2022
fa7f870
Fix Util.py docstring for listdir_dirs. Minor update to reading sxs …
jcbrill Jun 30, 2022
033e876
Fix: make MSCommon logger to be independent of root logger.
jcbrill Jul 1, 2022
8cf6097
Add msvc script error global policy and construction variable. Move m…
jcbrill Jul 5, 2022
392af45
Revert from MSVCNotFoundWarning back to VisualCMissingWarning (test f…
jcbrill Jul 5, 2022
36b8d2d
Remove API module and import exceptions and global policy functions
jcbrill Jul 5, 2022
42803c3
Rename msvc functions for consistency. Make additional msvc function…
jcbrill Jul 5, 2022
7a930d9
Change to individual imports with noqa F401 to appease sider/flake8.
jcbrill Jul 5, 2022
7c6def0
Return full toolset version number for version toolset query function.
jcbrill Jul 6, 2022
f7e37ed
Fix typo in comment and add msvc not found, msvc script error, and ms…
jcbrill Jul 7, 2022
a75614c
Return empty list instead of None in msvc_toolset_versions. Expand ms…
jcbrill Jul 7, 2022
e8faf15
Fix invalid msvc version test.
jcbrill Jul 7, 2022
88c534e
Minor update to msvc exceptions and rework new unit tests.
jcbrill Jul 7, 2022
737abe7
Add utility function for msvc_version components. Add convenience fu…
jcbrill Jul 7, 2022
3cc1197
Additional policy tests for coverage.
jcbrill Jul 8, 2022
3bd4f4a
Add MSVC_SDK_VERSION tests.
jcbrill Jul 8, 2022
cd82717
Fix sider issues.
jcbrill Jul 8, 2022
6f92901
Disable cache for MSVC/MSVC_USE_SCRIPT_ARGS test.
jcbrill Jul 8, 2022
23f63fc
Update readme and changes for mscommon logger fix and msvc use script…
jcbrill Jul 8, 2022
04a5dea
Rework version convenience functions. Add additional tests.
jcbrill Jul 9, 2022
df56307
Fix sider issues.
jcbrill Jul 9, 2022
0d85fd2
Move toolset version regexes to utility module. Rename default versi…
jcbrill Jul 9, 2022
ea10a37
Modify msvc_query_version_toolset when version is None to use default…
jcbrill Jul 10, 2022
43d02a2
Fix msvc toolset versions test when not msvc version not installed.
jcbrill Jul 10, 2022
1291355
Local flake8 recommendations.
jcbrill Jul 11, 2022
2eb66e9
Add additional tests. Remove trailing whitespace.
jcbrill Jul 11, 2022
3f9d668
Update utility functions and add tests.
jcbrill Jul 12, 2022
afd7d10
Rework registry read_value to expand variables if necessary. Add reg…
jcbrill Jul 13, 2022
8595773
Update UtilTests with version components tests and remove separate ms…
jcbrill Jul 13, 2022
1365adb
Move individual tests file content into vcTests.py
jcbrill Jul 13, 2022
744dac6
Disable new vcTests for non-windows platforms.
jcbrill Jul 13, 2022
61c7fb5
Fix new tests in vcTests.py to run on non-windows platforms.
jcbrill Jul 14, 2022
a05b891
Add WinSDK tests.
jcbrill Jul 14, 2022
7db4e09
Rework special case for 9.0 VCForPython handling (vc dir and batchfil…
jcbrill Jul 14, 2022
8ad53e8
Add additional tests for msvc_sdk_versions, msvc_toolset_versions, an…
jcbrill Jul 15, 2022
6d35399
Rework unit tests: move global data to Data class and move monkey pat…
jcbrill Jul 16, 2022
279b5c5
Return previous policy when setting default argument policy. Add mor…
jcbrill Jul 16, 2022
f879f81
Use installed versions instead of all versions.
jcbrill Jul 16, 2022
57d6170
Add version components tuple to version breakdown definitions.
jcbrill Jul 17, 2022
a3c7e65
Add msvc sdk version components utility function and tuple. Finish s…
jcbrill Jul 17, 2022
bf6ea8a
Add function to return toolsets with spectre libs folder (target may …
jcbrill Jul 17, 2022
79c8e91
Remove blank line and redundant test invocation.
jcbrill Jul 17, 2022
f4efe6b
Remove print statement from ScriptArgumentsTests.py.
jcbrill Jul 17, 2022
d7664eb
Add msvc spectre libs test. Add library path checks to msvc sdk vers…
jcbrill Jul 17, 2022
32bfd79
Add special case for msvc 14.0 and store/uwp specified via script arg…
jcbrill Jul 18, 2022
d6c4499
Minor tweaks for readability and consistency.
jcbrill Jul 18, 2022
e99127b
Add MSCommon/README.rst with verbatim content from MSCommon/README. …
jcbrill Jul 18, 2022
da2f846
Merge branch 'master' into jbrill-msvc-batchargs
jcbrill Jul 18, 2022
4822e9b
Rename README to README.rst and update contents for RST. [ci skip]
jcbrill Jul 18, 2022
587d55d
Revert "Rename README to README.rst and update contents for RST. [ci …
jcbrill Jul 18, 2022
d9f89fe
Remove README.rst.
jcbrill Jul 18, 2022
1eefde2
Rename README to README.rst.
jcbrill Jul 18, 2022
89fc869
Convert format from plain text to RST. [ci skip]
jcbrill Jul 18, 2022
e274cf1
Remove sentence that predates file rename. [ci skip]
jcbrill Jul 18, 2022
aca539b
Update MSCommon/README.rst.
jcbrill Jul 19, 2022
65204c9
refactore to avoid shadowing 'bool' changed variable name to bool_val
bdbaddog Jul 24, 2022
69bb077
Format code via black
bdbaddog Jul 24, 2022
6625bc4
Format code via black
bdbaddog Jul 24, 2022
3b79d43
Format code via black
bdbaddog Jul 24, 2022
eebf3b6
fix variable names which were shadowing global/module symbols
bdbaddog Jul 24, 2022
bf659c3
Updated copyright block, minor code fixes
bdbaddog Jul 25, 2022
2cf871f
minor formatting updates
bdbaddog Jul 25, 2022
94133d4
Fix sphinx version < 5.1.0. For now 5.1.0 breaks the sphinx api build
bdbaddog Jul 25, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 55 additions & 6 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,30 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
determination when configuring the build environment. This could lead to build failures when
only an MSVC Express instance is installed and the MSVC version is not explicitly specified
(issue #2668 and issue #2697).
- Added MSVC_USE_SETTINGS variable to pass a dictionary to configure the msvc compiler
- Added MSVC_USE_SETTINGS construction variable to pass a dictionary to configure the msvc compiler
system environment as an alternative to bypassing Visual Studio autodetection entirely.
- Added MSVC_SDK_VERSION construction variable which allows building with a specific Microsoft
SDK version. This variable is used with the msvc batch file determined via autodetection subject
to validation constraints. Refer to the documentation for additional requirements and validation
details.
- Added MSVC_TOOLSET_VERSION construction variable which allows building with a specific toolset
version. This variable is used with the msvc batch file determined via autodetection subject to
validation constraints. This variable does not affect the autodetection and selection of msvc
instances. The toolset version is applied after an msvc instance is selected. This could be the
default version of msvc. Refer to the documentation for additional requirements and validation
details. Addresses issue #3265, issue #3664, and pull request #4149.
- Added MSVC_SPECTRE_LIBS construction variable which allows building with spectre-mitigated
Visual C++ libraries. This variable is used with the msvc batch file determined via autodetection
subject to validation constraints. Refer to the documentation for additional requirements and
validation details.
- Added MSVC_SCRIPT_ARGS construction variable which specifies command line arguments that are
passed to the msvc batch file determined via autodetection subject to validation constraints.
Refer to the documentation for additional requirements and validation details. Addresses
enhancement issue #4106.
- An exception is raised when MSVC_UWP_APP is enabled for Visual Studio 2013 and earlier.
Previous behavior was to silently ignore MSVC_UWP_APP when enabled for Visual Studio 2013
and earlier. Refer to the documentation for additional requirements and validation details.
MSVC_UWP_APP was extended to accept True, False, and None in addition to '1' and '0'.
- The imported system environment variable names for MSVC 7.0 and 6.0 have been changed to the
names set by their respective installers. Prior to this change, bypassing MSVC detection by
specifying the MSVC 7.0 batch file directly would fail due to using an erroneous environment
Expand All @@ -54,19 +76,46 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER
present, there is no easy way to detect during msvc initialization if the default environment
will be used later to build a program and/or library. There is no error/warning issued for the
default tools as there are legitimate SCons uses that do not require a c compiler.
- Added a global policy setting and an environment policy variable for specifying the action to
be taken when an msvc request cannot be satisfied. The available options are "error",
- Added a global policy setting and an environment construction variable for specifying the
action to be taken when an msvc request cannot be satisfied. The available options are "error",
"exception", "warning", "warn", "ignore", and "suppress". The global policy variable may be
set and retrieved via the functions set_msvc_notfound_policy and get_msvc_notfound_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
policy variable introduced is MSVC_NOTFOUND_POLICY. When defined, the environment policy
set and retrieved via the functions msvc_set_notfound_policy and msvc_get_notfound_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
construction variable is MSVC_NOTFOUND_POLICY. When defined, the environment construction
variable overrides the global policy setting for a given environment. When the active policy
is "error" or "exception", an MSVCVersionNotFound exception is raised. When the active policy
is "warning" or "warn", a VisualCMissingWarning warning is issued and the constructed
environment is likely incomplete. When the active policy is "ignore" or "suppress", no action
is taken and the constructed environment is likely incomplete. As implemented, the default
global policy is "warning". The ability to set the global policy via an SCons command-line
option may be added in a future enhancement.
- Added a global policy setting and an environment construction variable for specifying the
action to be taken when msvc script errors are detected. The available options are "error",
"exception", "warning", "warn", "ignore", and "suppress". The global policy variable may be
set and retrieved via the functions msvc_set_scripterror_policy and msvc_get_scripterror_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
construction variable is MSVC_SCRIPTERROR_POLICY. When defined, the environment construction
variable overrides the global policy setting for a given environment. When the active policy
is "error" or "exception", an MSVCScriptExecutionError exception is raised when msvc batch file
errors are detected. When the active policy is "warning" or "warn", an MSVCScriptExecutionWarning
warning is issued when msvc batch file errors are detected. When the active policy is "ignore" or
"suppress", msvc batch error messages are suppressed. As implemented, the default global policy
is "ignore". The ability to set the global policy via an SCons command-line option may be added
in a future enhancement.
- Added experimental function msvc_query_version_toolset to SCons.Tool.MSCommon. Given a version
specification, this function will return an msvc version and an msvc toolset version. The msvc
toolset version may be None. The msvc version and msvc toolset version can be used in the
environment construction variables MSVC_VERSION and MSVC_TOOLSET_VERSION, respectively. The
version specification may be an msvc version or an msvc toolset version. This is a proxy for
using an msvc toolset version to select an msvc instance. This function may be removed when an
msvc toolset version is used during msvc instance selection.
- Modify the MSCommon logger configuration to be independent of the root logger. This fixes an issue
when multiple loggers are created and the MSCommon logger added computed fields to the root logger
that are not present in other logging instances.
- Modify the MSVC_USE_SCRIPT_ARGS test fixture to disable the msvc cache. This fixes an issue where
the MSVC_USE_SCRIPT_ARGS test for success relied on a debug log message that was not produced when
the msvc cache file exists and the test keys are already in the cache as the msvc script invocation
was bypassed.

From William Deegan:
- Fix check for unsupported Python version. It was broken. Also now the error message
Expand Down
62 changes: 54 additions & 8 deletions RELEASE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,61 @@ NEW FUNCTIONALITY
variables). This allows the user to customize how (for example) PATH is constructed.
Note that these are called for every build command run by SCons. It could have considerable
performance impact if not used carefully.
- Added MSVC_USE_SETTINGS variable to pass a dictionary to configure the msvc compiler
- Added MSVC_USE_SETTINGS construction variable to pass a dictionary to configure the msvc compiler
system environment as an alternative to bypassing Visual Studio autodetection entirely.
- Added MSVC_SDK_VERSION construction variable which allows building with a specific Microsoft
SDK version. This variable is used with the msvc batch file determined via autodetection. Refer
to the documentation for additional requirements and validation details.
- Added MSVC_TOOLSET_VERSION construction variable which allows building with a specific toolset
version. This variable is used with the msvc batch file determined via autodetection. This
variable does not affect the autodetection and selection of msvc instances. The toolset version
is applied after an msvc instance is selected. This could be the default version of msvc. Refer
to the documentation for additional requirements and validation details. Addresses issue #3265,
issue #3664, and pull request #4149.
- Added MSVC_SPECTRE_LIBS construction variable which allows building with spectre-mitigated
Visual C++ libraries. This variable is used with the msvc batch file determined via autodetection.
Refer to the documentation for additional requirements and validation details.
- Added MSVC_SCRIPT_ARGS construction variable which specifies command line arguments that are
passed to the msvc batch file determined via autodetection. Refer to the documentation for
additional requirements and validation details. Addresses enhancement issue #4106.
- Ninja: Added new alias "shutdown-ninja-scons-daemon" to allow ninja to shutdown the daemon.
Also added cleanup to test framework to kill ninja scons daemons and clean ip daemon logs.
NOTE: Test for this requires python psutil module. It will be skipped if not present.
- Ninja: Added command line variable NINJA_CMD_ARGS that allows to pass through ninja command line args.
This can also be set in your Environment().
- Added a global policy setting and an environment policy variable for specifying the action to
be taken when an msvc request cannot be satisfied. The available options are "error",
- Added a global policy setting and an environment construction variable for specifying the
action to be taken when an msvc request cannot be satisfied. The available options are "error",
"exception", "warning", "warn", "ignore", and "suppress". The global policy variable may be
set and retrieved via the functions set_msvc_notfound_policy and get_msvc_notfound_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
policy variable introduced is MSVC_NOTFOUND_POLICY. When defined, the environment policy
set and retrieved via the functions msvc_set_notfound_policy and msvc_get_notfound_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
construction variable is MSVC_NOTFOUND_POLICY. When defined, the environment construction
variable overrides the global policy setting for a given environment. When the active policy
is "error" or "exception", an MSVCVersionNotFound exception is raised. When the active policy
is "warning" or "warn", a VisualCMissingWarning warning is issued and the constructed
environment is likely incomplete. When the active policy is "ignore" or "suppress", no action
is taken and the constructed environment is likely incomplete. As implemented, the default
global policy is "warning". The ability to set the global policy via an SCons command-line
option may be added in a future enhancement.
- Added a global policy setting and an environment construction variable for specifying the
action to be taken when msvc script errors are detected. The available options are "error",
"exception", "warning", "warn", "ignore", and "suppress". The global policy variable may be
set and retrieved via the functions msvc_set_scripterror_policy and msvc_get_scripterror_policy,
respectively. These two methods may be imported from SCons.Tool.MSCommon. The environment
construction variable is MSVC_SCRIPTERROR_POLICY. When defined, the environment construction
variable overrides the global policy setting for a given environment. When the active policy
is "error" or "exception", an MSVCScriptExecutionError exception is raised when msvc batch file
errors are detected. When the active policy is "warning" or "warn", an MSVCScriptExecutionWarning
warning is issued when msvc batch file errors are detected. When the active policy is "ignore" or
"suppress", msvc batch error messages are suppressed. As implemented, the default global policy
is "ignore". The ability to set the global policy via an SCons command-line option may be added
in a future enhancement.
- Added experimental function msvc_query_version_toolset to SCons.Tool.MSCommon. Given a version
specification, this function will return an msvc version and an msvc toolset version. The msvc
toolset version may be None. The msvc version and msvc toolset version can be used in the
environment construction variables MSVC_VERSION and MSVC_TOOLSET_VERSION, respectively. The
version specification may be an msvc version or an msvc toolset version. This is a proxy for
using an msvc toolset version to select an msvc instance. This function may be removed when an
msvc toolset version is used during msvc instance selection.
- Fortran: a new construction variable FORTRANCOMMONFLAGS is added which is
applied to all Fortran dialects, to enable global (all-dialect) settings.

Expand Down Expand Up @@ -96,8 +131,8 @@ CHANGED/ENHANCED EXISTING FUNCTIONALITY
automatically executes ninja.
- Add JavaScanner to include JAVACLASSPATH as a dependency when using the Java tool.
- The build argument (i.e., x86) is no longer passed to the MSVC 6.0 to 7.1 batch
files. This may improve the effectiveness of the internal msvc cache when using
MSVC detection and when bypassing MSVC detection as the MSVC 6.0 to 7.1 batch files
files. This may improve the effectiveness of the internal msvc cache when using
MSVC detection and when bypassing MSVC detection as the MSVC 6.0 to 7.1 batch files
do not expect any arguments.
- Propagate the OS and windir environment variables from the system environment to the msvc
environment. The OS and windir environment variables are used in the MSVC 6.0 batch file
Expand All @@ -109,6 +144,10 @@ CHANGED/ENHANCED EXISTING FUNCTIONALITY
require delayed expansion to be enabled which is currently not supported and is
typically not enabled by default on the host system. The batch files may also require
environment variables that are not included by default in the msvc environment.
- An exception is raised when MSVC_UWP_APP is enabled for Visual Studio 2013 and earlier.
Previous behavior was to silently ignore MSVC_UWP_APP when enabled for Visual Studio 2013
and earlier. Refer to the documentation for additional requirements and validation details.
MSVC_UWP_APP was extended to accept True, False, and None in addition to '1' and '0'.
- Ninja: added option "--skip-ninja-regen" to enable skipping regeneration of the ninja file
if scons can determine the ninja file doesnot need to be regenerated, which will also
skip restarting the scons daemon. Note this option is could result in incorrect rebuilds
Expand Down Expand Up @@ -160,6 +199,13 @@ FIXES
error caused when bypassing MSVC detection by specifying the MSVC 7.0 batch file directly.
- lex: Fixed an issue with the lex tool where file arguments specified to either "--header-file="
or "--tables-file=" which included a space in the path to the file would be processed incorrectly
- Modify the MSCommon logger configuration to be independent of the root logger. This fixes an issue
when multiple loggers are created and the MSCommon logger added computed fields to the root logger
that are not present in other logging instances.
- Modify the MSVC_USE_SCRIPT_ARGS test fixture to disable the msvc cache. This fixes an issue where
the MSVC_USE_SCRIPT_ARGS test for success relied on a debug log message that was not produced when
the msvc cache file exists and the test keys are already in the cache as the msvc script invocation
was bypassed.
- Suppress issuing a warning when there are no installed Visual Studio instances for the default
tools configuration (issue #2813). When msvc is the default compiler because there are no
compilers installed, a build may fail due to the cl.exe command not being recognized. At
Expand Down
Loading