From 1f2fdc9538f2ee9d9fad68137798c49113e96274 Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Fri, 25 Oct 2019 17:13:49 +0100 Subject: build: fix detection of Visual Studio 2017 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-By: Michaël Zasso Reviewed-By: João Reis --- vcbuild.bat | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'vcbuild.bat') diff --git a/vcbuild.bat b/vcbuild.bat index 57f2deba79..10c9ef34bb 100644 --- a/vcbuild.bat +++ b/vcbuild.bat @@ -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 ( -- cgit v1.2.3