]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/set_vsprefix_envs.bat
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / BaseTools / set_vsprefix_envs.bat
index 95f30f7aefb108d3b7e7de4fea40f45f743ef4ca..d4eb84f0648d54ec9dfde9111f0239275ba44d5e 100644 (file)
@@ -3,13 +3,26 @@
 @REM   however it may be executed directly from the BaseTools project folder\r
 @REM   if the file is not executed within a WORKSPACE\BaseTools folder.\r
 @REM\r
-@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.<BR>\r
+@REM Copyright (c) 2016-2020, Intel Corporation. All rights reserved.<BR>\r
 @REM\r
 @REM SPDX-License-Identifier: BSD-2-Clause-Patent\r
 @REM\r
 \r
 @echo off\r
 pushd .\r
+set SCRIPT_ERROR=0\r
+goto main\r
+\r
+:ToolNotInstall\r
+set SCRIPT_ERROR=1\r
+goto :EOF\r
+\r
+:main\r
+if /I "%1"=="VS2019" goto SetVS2019\r
+if /I "%1"=="VS2017" goto SetVS2017\r
+if /I "%1"=="VS2015" goto SetVS2015\r
+if /I "%1"=="VS2013" goto SetVS2013\r
+if /I "%1"=="VS2012" goto SetVS2012\r
 \r
 if defined VS71COMNTOOLS (\r
   if not defined VS2003_PREFIX (\r
@@ -47,6 +60,7 @@ if defined VS100COMNTOOLS (
   )\r
 )\r
 \r
+:SetVS2012\r
 if defined VS110COMNTOOLS (\r
   if not defined VS2012_PREFIX (\r
     set "VS2012_PREFIX=%VS110COMNTOOLS:~0,-14%"\r
@@ -57,8 +71,12 @@ if defined VS110COMNTOOLS (
   if not defined WINSDK71x86_PREFIX (\r
     set "WINSDK71x86_PREFIX=c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin\"\r
   )\r
+) else (\r
+  if /I "%1"=="VS2012" goto ToolNotInstall\r
 )\r
+if /I "%1"=="VS2012" goto SetWinDDK\r
 \r
+:SetVS2013\r
 if defined VS120COMNTOOLS (\r
   if not defined VS2013_PREFIX (\r
     set "VS2013_PREFIX=%VS120COMNTOOLS:~0,-14%"\r
@@ -69,8 +87,12 @@ if defined VS120COMNTOOLS (
   if not defined WINSDK8x86_PREFIX (\r
     set "WINSDK8x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.0\bin\"\r
   )\r
+) else (\r
+  if /I "%1"=="VS2013" goto ToolNotInstall\r
 )\r
+if /I "%1"=="VS2013" goto SetWinDDK\r
 \r
+:SetVS2015\r
 if defined VS140COMNTOOLS (\r
   if not defined VS2015_PREFIX (\r
     set "VS2015_PREFIX=%VS140COMNTOOLS:~0,-14%"\r
@@ -81,19 +103,46 @@ if defined VS140COMNTOOLS (
   if not defined WINSDK81x86_PREFIX (\r
     set "WINSDK81x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.1\bin\"\r
   )\r
+) else (\r
+  if /I "%1"=="VS2015" goto ToolNotInstall\r
 )\r
+if /I "%1"=="VS2015" goto SetWinDDK\r
 \r
-@REM set VS2017\r
+:SetVS2017\r
 if not defined VS150COMNTOOLS (\r
+  @REM clear two envs so that vcvars32.bat can run successfully.\r
+  set VSINSTALLDIR=\r
+  set VCToolsVersion=\r
   if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
-    for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"`) do (\r
-      if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+    if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools" (\r
+      call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    ) else (\r
+      call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
     )\r
   ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
-    for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"`) do (\r
-      if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+    if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" (\r
+      call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    ) else (\r
+      call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
     )\r
   ) else (\r
+    if /I "%1"=="VS2017" goto ToolNotInstall\r
     goto SetWinDDK\r
   )\r
 )\r
@@ -102,16 +151,84 @@ if defined VCToolsInstallDir (
   if not defined VS2017_PREFIX (\r
     set "VS2017_PREFIX=%VCToolsInstallDir%"\r
   )\r
+  if not defined WINSDK10_PREFIX (\r
+    if defined WindowsSdkVerBinPath (\r
+      set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"\r
+    ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (\r
+      set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\"\r
+    ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (\r
+      set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\"\r
+    )\r
+  )\r
+)\r
+if not defined WINSDK_PATH_FOR_RC_EXE (\r
+  if defined WINSDK10_PREFIX (\r
+    set "WINSDK_PATH_FOR_RC_EXE=%WINSDK10_PREFIX%x86"\r
+  )\r
+)\r
+\r
+if /I "%1"=="VS2017" goto SetWinDDK\r
+\r
+:SetVS2019\r
+if not defined VS160COMNTOOLS (\r
+  @REM clear two envs so that vcvars32.bat can run successfully.\r
+  set VSINSTALLDIR=\r
+  set VCToolsVersion=\r
+  if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" (\r
+      call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    ) else (\r
+      call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    )\r
+  ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" (\r
+    if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" (\r
+      call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    ) else (\r
+      call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo\r
+      for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do (\r
+        if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat"\r
+      )\r
+      del vswhereInfo\r
+    )\r
+  ) else (\r
+    if /I "%1"=="VS2019" goto ToolNotInstall\r
+    goto SetWinDDK\r
+  )\r
 )\r
-if not defined WINSDK10_PREFIX (\r
-  if defined WindowsSdkVerBinPath (\r
-    set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"\r
-  ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (\r
-    set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\"\r
-  ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (\r
-    set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\"\r
+\r
+if defined VCToolsInstallDir (\r
+  if not defined VS2019_PREFIX (\r
+    set "VS2019_PREFIX=%VCToolsInstallDir%"\r
+  )\r
+  if not defined WINSDK10_PREFIX (\r
+    if defined WindowsSdkVerBinPath (\r
+      set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%"\r
+    ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" (\r
+      set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\"\r
+    ) else if exist "%ProgramFiles%\Windows Kits\10\bin" (\r
+      set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\"\r
+    )\r
   )\r
 )\r
+if not defined WINSDK_PATH_FOR_RC_EXE (\r
+  if defined WINSDK10_PREFIX (\r
+    set "WINSDK_PATH_FOR_RC_EXE=%WINSDK10_PREFIX%x86"\r
+  )\r
+)\r
+\r
+if /I "%1"=="VS2019" goto SetWinDDK\r
 \r
 :SetWinDDK\r
 if not defined WINDDK3790_PREFIX (\r