]> 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 9b5e9d24fcc4020c447c116460692a329ba42ce8..3beb113be296cfbc7b220b62cc3a1870e01f9103 100644 (file)
@@ -8,12 +8,23 @@
 \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
-for /f "usebackq tokens=1* delims=: " %%i in (`%*`) do (\r
-  if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
-)\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
@@ -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,11 +48,49 @@ REM       (Or invoke the relevant vsvars32 file beforehand).
 \r
 :main\r
 if defined VCINSTALLDIR goto :done\r
-  if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"  call :set_vsvars "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"\r
-  if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"       call :set_vsvars "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"\r
-  if defined VS140COMNTOOLS  call :read_vsvars  "%VS140COMNTOOLS%"\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