[PATCH] D135873: Detect Visual Studio automatically in Windows packaging script

Pierrick Bouvier via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 13 06:24:08 PDT 2022


pbo-linaro created this revision.
Herald added a project: All.
pbo-linaro requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Instead of hardcoding several VS paths, use vswhere.exe (available from
VS 2017) to get latest version available.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D135873

Files:
  llvm/utils/release/build_llvm_release.bat


Index: llvm/utils/release/build_llvm_release.bat
===================================================================
--- llvm/utils/release/build_llvm_release.bat
+++ llvm/utils/release/build_llvm_release.bat
@@ -83,14 +83,18 @@
 REM
 
 :: Detect Visual Studio
-set vsdevcmd=
-set vs_2019_prefix=C:\Program Files (x86)\Microsoft Visual Studio\2019
-:: try potential activated visual studio, then 2019, with different editions
-call :find_visual_studio "%VSINSTALLDIR%"
-call :find_visual_studio "%vs_2019_prefix%\Enterprise"
-call :find_visual_studio "%vs_2019_prefix%\Professional"
-call :find_visual_studio "%vs_2019_prefix%\Community"
-call :find_visual_studio "%vs_2019_prefix%\BuildTools"
+set vsinstall=
+set vswhere=%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe
+
+if "%VSINSTALLDIR%" NEQ "" (
+  echo use enabled Visual Studio installation
+  set "vsinstall=%VSINSTALLDIR%"
+) else (
+  echo use vswhere to detect Visual Studio installation
+  FOR /F "delims=" %%r IN ('^""%vswhere%" -nologo -latest -products "*" -all -property installationPath^"') DO set vsinstall=%%r
+)
+set "vsdevcmd=%vsinstall%\Common7\Tools\VsDevCmd.bat"
+
 if not exist "%vsdevcmd%" (
   echo Can't find any installation of Visual Studio
   exit /b 1
@@ -359,14 +363,3 @@
 
 :parse_args_done
 exit /b 0
-::==============================================================================
-:find_visual_studio
-set "vs_install=%~1"
-if "%vs_install%" == "" exit /b 1
-
-if "%vsdevcmd%" NEQ "" exit /b 0 :: already found
-
-set "candidate=%vs_install%\Common7\Tools\VsDevCmd.bat"
-echo trying VS devcmd: %candidate%
-if exist "%candidate%" set "vsdevcmd=%candidate%"
-exit /b 0


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D135873.467457.patch
Type: text/x-patch
Size: 1716 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221013/e0c13ce7/attachment.bin>


More information about the llvm-commits mailing list