mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
build: fix detection of Visual Studio 2017
When run in a Visual Studio 2017 command prompt the `VCINSTALLDIR` environment variable will be already set and is not cleared by the `tools/msvs/vswhere_usability_wrapper.cmd` utility when it fails to find Visual Studio 2019. This causes `vcbuild.bat` to incorrectly assume Visual Studio 2019 and generate an incompatible configuration. Clearing the value of `VCINSTALLDIR` before calling the utility fixes the detection logic. PR-URL: https://github.com/nodejs/node/pull/30119 Fixes: https://github.com/nodejs/node/issues/30118 Refs: https://github.com/nodejs/node/pull/30022 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: João Reis <reis@janeasystems.com>
This commit is contained in:
1 file changed
+4
@@ -240,6 +240,10 @@ if %target_arch%==x86 if %msvs_host_arch%==x86 set vcvarsall_arg=x86
|
||||
:vs-set-2019
|
||||
if defined target_env if "%target_env%" NEQ "vs2019" goto vs-set-2017
|
||||
echo Looking for Visual Studio 2019
|
||||
@rem VCINSTALLDIR may be set if run from a VS Command Prompt and needs to be
|
||||
@rem cleared first as vswhere_usability_wrapper.cmd doesn't when it fails to
|
||||
@rem detect the version searched for
|
||||
set "VCINSTALLDIR="
|
||||
call tools\msvs\vswhere_usability_wrapper.cmd "[16.0,17.0)"
|
||||
if "_%VCINSTALLDIR%_" == "__" goto vs-set-2017
|
||||
if defined msi (
|
||||
|
||||
Reference in new issue
Block a user