]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: Update VS batch file to auto detect VS2017
authorLiming Gao <liming.gao@intel.com>
Wed, 22 Nov 2017 16:26:09 +0000 (00:26 +0800)
committerLiming Gao <liming.gao@intel.com>
Wed, 29 Nov 2017 08:03:12 +0000 (16:03 +0800)
This way depends on VS vswhere.exe to find VS2017 installed directory.
vswhere.exe starts in Visual Studio 2017 version 15.2.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <liming.gao@intel.com>
Signed-off-by: Pete Batard <pete@akeo.ie>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
BaseTools/get_vsvars.bat
BaseTools/set_vsprefix_envs.bat

index 7649e1dccf4701e2bca23f26c4ab85bd4ffac45e..ba3e54d588cfb708f1cb5acb8a14a52cf1589c54 100644 (file)
 @echo off\r
 goto  :main\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
+goto :EOF\r
+\r
 :read_vsvars\r
 @rem Do nothing if already found, otherwise call vsvars32.bat if there\r
 if defined VCINSTALLDIR goto :EOF\r
@@ -33,6 +39,8 @@ 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
index b05b1d222083cfcc712afdc99d8b537ebda93607..ed83222a24c89b99c5fe807c4b5c454d984ce9a8 100644 (file)
@@ -3,7 +3,7 @@
 @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, Intel Corporation. All rights reserved.<BR>\r
+@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.<BR>\r
 @REM\r
 @REM This program and the accompanying materials are licensed and made available\r
 @REM under the terms and conditions of the BSD License which accompanies this\r
@@ -90,6 +90,37 @@ if defined VS140COMNTOOLS (
   )\r
 )\r
 \r
+@REM set VS2017\r
+if not defined VS150COMNTOOLS (\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
+    )\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
+    )\r
+  ) else (\r
+    goto SetWinDDK\r
+  )\r
+)\r
+\r
+if defined VCToolsInstallDir (\r
+  if not defined VS2017_PREFIX (\r
+    set "VS2017_PREFIX=%VCToolsInstallDir%"\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
+)\r
+\r
+:SetWinDDK\r
 if not defined WINDDK3790_PREFIX (\r
   set WINDDK3790_PREFIX=C:\WINDDK\3790.1830\bin\\r
 )\r