From b655b3f1c2bb904e5a4fe2ed84de0553303cabc6 Mon Sep 17 00:00:00 2001 From: Thomas Kent Date: Fri, 1 Mar 2019 07:05:03 -0600 Subject: [PATCH] Fixes vswhere lookup during bootstrap for 16.X and 17.X --- src/engine/vswhere_usability_wrapper.cmd | 34 +++++++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/src/engine/vswhere_usability_wrapper.cmd b/src/engine/vswhere_usability_wrapper.cmd index eb7c537bc..5f68b6073 100644 --- a/src/engine/vswhere_usability_wrapper.cmd +++ b/src/engine/vswhere_usability_wrapper.cmd @@ -1,7 +1,8 @@ :: Copyright 2017 - Refael Ackermann +:: Copyright 2019 - Thomas Kent :: Distributed under MIT style license :: See accompanying file LICENSE at https://github.com/node4good/windows-autoconf -:: version: 1.15.4 +:: Forked from version: 1.15.4 @if not defined DEBUG_HELPER @ECHO OFF setlocal @@ -14,19 +15,44 @@ 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 + +REM Visual Studio 2017 (15.X, toolset 14.1) set VSWHERE_LMT=-version "[15.0,16.0)" -vswhere -prerelease > nul -if "%~1"=="prerelase" set VSWHERE_WITH_PRERELASE=1 -if not errorlevel 1 if "%VSWHERE_WITH_PRERELASE%"=="1" set "VSWHERE_LMT=%VSWHERE_LMT% -prerelease" SET VSWHERE_ARGS=-latest -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT% for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do ( endlocal + echo Found with vswhere %%i @rem comment out setting VCINSTALLDIR for Boost.build @rem set "VCINSTALLDIR=%%i\VC\" set "VS150COMNTOOLS=%%i\Common7\Tools\" exit /B 0 ) +REM Visual Studio 2019 (16.X, toolset 14.2) +set VSWHERE_LMT=-version "[16.0,17.0)" +SET VSWHERE_ARGS=-latest -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT% +for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do ( + endlocal + echo Found with vswhere %%i + @rem comment out setting VCINSTALLDIR for Boost.build + @rem set "VCINSTALLDIR=%%i\VC\" + set "VS160COMNTOOLS=%%i\Common7\Tools\" + exit /B 0 +) + +REM Visual Studio Next (17.X, toolset 14.3???) +set VSWHERE_LMT=-version "[17.0,18.0)" +set VSWHERE_PRERELEASE=-prerelease +SET VSWHERE_ARGS=-latest -products * %VSWHERE_REQ% %VSWHERE_PRP% %VSWHERE_LMT% %VSWHERE_PRERELEASE% +for /f "usebackq tokens=*" %%i in (`vswhere %VSWHERE_ARGS%`) do ( + endlocal + echo Found with vswhere %%i + @rem comment out setting VCINSTALLDIR for Boost.build + @rem set "VCINSTALLDIR=%%i\VC\" + set "VS170COMNTOOLS=%%i\Common7\Tools\" + exit /B 0 +) + :no-vswhere endlocal echo could not find "vswhere"