]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/get_vsvars.bat
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / BaseTools / get_vsvars.bat
index b67a81d78052a58765c93473271475cb38f8b9bc..3beb113be296cfbc7b220b62cc3a1870e01f9103 100644 (file)
@@ -3,18 +3,29 @@
 @REM\r
 @REM Copyright (c) 2013-2014, ARM Limited. All rights reserved.\r
 \r
-@REM This program and the accompanying materials\r
-@REM are licensed and made available under the terms and conditions of the BSD License\r
-@REM which accompanies this distribution.  The full text of the license may be found at\r
-@REM http://opensource.org/licenses/bsd-license.php\r
-@REM\r
-@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+@REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
 @REM\r
 \r
 \r
 @echo off\r
-goto  :main\r
+set SCRIPT_ERROR=0\r
+if "%1"=="" goto main\r
+if /I "%1"=="VS2019" goto VS2019Vars\r
+if /I "%1"=="VS2017" goto VS2017Vars\r
+if /I "%1"=="VS2015" goto VS2015Vars\r
+if /I "%1"=="VS2013" goto VS2013Vars\r
+if /I "%1"=="VS2012" goto VS2012Vars\r
+\r
+:set_vsvars\r
+if defined VCINSTALLDIR goto :EOF\r
+  call %* > vswhereInfo\r
+  for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+    if /i "%%i"=="installationPath" (\r
+      call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+    )\r
+  )\r
+  del vswhereInfo\r
+goto :EOF\r
 \r
 :read_vsvars\r
 @rem Do nothing if already found, otherwise call vsvars32.bat if there\r
@@ -26,6 +37,10 @@ if defined VCINSTALLDIR goto :EOF
 goto :EOF\r
 \r
 \r
+:ToolNotInstall\r
+set SCRIPT_ERROR=1\r
+goto :EOF\r
+\r
 REM NOTE: This file will find the most recent Visual Studio installation\r
 REM       apparent from the environment.\r
 REM       To use an older version, modify your environment set up.\r
@@ -33,10 +48,49 @@ REM       (Or invoke the relevant vsvars32 file beforehand).
 \r
 :main\r
 if defined VCINSTALLDIR goto :done\r
-  if defined VS140COMNTOOLS  call :read_vsvars  "%VS140COMNTOOLS%"\r
-  if defined VS130COMNTOOLS  call :read_vsvars  "%VS130COMNTOOLS%"\r
-  if defined VS120COMNTOOLS  call :read_vsvars  "%VS120COMNTOOLS%"\r
-  if defined VS110COMNTOOLS  call :read_vsvars  "%VS110COMNTOOLS%"\r
+  :VS2019Vars\r
+  if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" (\r
+      call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17\r
+    ) else (\r
+      call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17\r
+    )\r
+  )\r
+  if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" (\r
+      call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17\r
+    ) else (\r
+      call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17\r
+    )\r
+  )\r
+  if /I "%1"=="VS2019" goto ToolNotInstall\r
+\r
+  :VS2017Vars\r
+  if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools" (\r
+      call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16\r
+    ) else (\r
+      call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16\r
+    )\r
+  )\r
+  if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" (\r
+      call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16\r
+    ) else (\r
+      call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16\r
+    )\r
+  )\r
+  if /I "%1"=="VS2017" goto ToolNotInstall\r
+\r
+  :VS2015Vars\r
+  if defined VS140COMNTOOLS (call :read_vsvars  "%VS140COMNTOOLS%") else (if /I "%1"=="VS2015" goto ToolNotInstall)\r
+\r
+  :VS2013Vars\r
+  if defined VS120COMNTOOLS ( call :read_vsvars  "%VS120COMNTOOLS%") else (if /I "%1"=="VS2013" goto ToolNotInstall)\r
+\r
+  :VS2012Vars\r
+  if defined VS110COMNTOOLS (call :read_vsvars  "%VS110COMNTOOLS%") else (if /I "%1"=="VS2012" goto ToolNotInstall)\r
+\r
   if defined VS100COMNTOOLS  call :read_vsvars  "%VS100COMNTOOLS%"\r
   if defined VS90COMNTOOLS   call :read_vsvars  "%VS90COMNTOOLS%"\r
   if defined VS80COMNTOOLS   call :read_vsvars  "%VS80COMNTOOLS%"\r