From 488a57612f10ba821359a2cf0fbd469c39016a29 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Mon, 31 Jul 2017 14:17:23 -0400 Subject: [PATCH] tools: bump vswhere helper to 2.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * enable explicit detection of prerelease VS versions with `set VSWHERE_WITH_PRERELEASE=1` PR-URL: https://github.com/nodejs/node/pull/14557 Reviewed-By: James M Snell Reviewed-By: Tobias Nießen Reviewed-By: Bartosz Sosnowski --- tools/msvs/vswhere_usability_wrapper.cmd | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/tools/msvs/vswhere_usability_wrapper.cmd b/tools/msvs/vswhere_usability_wrapper.cmd index b5e5653ad6812e..a260a50a2c2dda 100644 --- a/tools/msvs/vswhere_usability_wrapper.cmd +++ b/tools/msvs/vswhere_usability_wrapper.cmd @@ -1,20 +1,32 @@ :: Copyright 2017 - Refael Ackermann :: Distributed under MIT style license :: See accompanying file LICENSE at https://github.com/node4good/windows-autoconf -:: version: 1.14.0 +:: version: 2.0.0 @if not defined DEBUG_HELPER @ECHO OFF setlocal +if "%~1"=="prerelease" set VSWHERE_WITH_PRERELEASE=1 +set "InstallerPath=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer" +if not exist "%InstallerPath%" set "InstallerPath=%ProgramFiles%\Microsoft Visual Studio\Installer" +if not exist "%InstallerPath%" goto :no-vswhere +:: Manipulate %Path% for easier " handeling +set "Path=%Path%;%InstallerPath%" +where vswhere 2> nul > nul +if errorlevel 1 goto :no-vswhere set VSWHERE_REQ=-requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 set VSWHERE_PRP=-property installationPath set VSWHERE_LMT=-version "[15.0,16.0)" +vswhere -prerelease > nul +if not errorlevel 1 if "%VSWHERE_WITH_PRERELEASE%"=="1" set "VSWHERE_LMT=%VSWHERE_LMT% -prerelease" SET VSWHERE_ARGS=-latest -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT% -set "VSWHERE=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer" -if not exist "%VSWHERE%" set "VSWHERE=%ProgramFiles%\Microsoft Visual Studio\Installer" -if not exist "%VSWHERE%" exit /B 1 -set Path=%Path%;%VSWHERE% for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do ( endlocal set "VCINSTALLDIR=%%i\VC\" set "VS150COMNTOOLS=%%i\Common7\Tools\" - exit /B 0) + exit /B 0 +) + +:no-vswhere +endlocal +echo could not find "vswhere" +exit /B 1