From 670c903a68f214463f12c0c9619c162a0f342518 Mon Sep 17 00:00:00 2001 From: "Cheng, Ching JenX" Date: Thu, 19 Sep 2019 16:52:26 +0800 Subject: Add VS2019 Support on ToolSetup Batches REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2182 Inorder to support VS2019, we add VS2019 config process in Setup Batch Files, Because VS2019 and VS2017 could using same vswhere.exe to detect the InstallationPath, So we add the -version as the parameter of vswhere to get the correct VS2017/VS2019's InstallationPath v3: In BaseTools\set_vsprefix_envs.bat, move WINSDK10_PREFIX setting into VCToolsInstallDir check condition. Cc: Amy Chan Cc: Bob Feng Cc: Liming Gao Signed-off-by: Ching JenX Cheng Reviewed-by: Liming Gao Reviewed-by: Pete Batard --- BaseTools/set_vsprefix_envs.bat | 86 ++++++++++++++++++++++++++++++++++------- 1 file changed, 73 insertions(+), 13 deletions(-) (limited to 'BaseTools/set_vsprefix_envs.bat') diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.bat index 81686f5b63..6dff25d930 100644 --- a/BaseTools/set_vsprefix_envs.bat +++ b/BaseTools/set_vsprefix_envs.bat @@ -3,7 +3,7 @@ @REM however it may be executed directly from the BaseTools project folder @REM if the file is not executed within a WORKSPACE\BaseTools folder. @REM -@REM Copyright (c) 2016-2017, Intel Corporation. All rights reserved.
+@REM Copyright (c) 2016-2019, Intel Corporation. All rights reserved.
@REM @REM SPDX-License-Identifier: BSD-2-Clause-Patent @REM @@ -18,6 +18,7 @@ set SCRIPT_ERROR=1 goto :EOF :main +if /I "%1"=="VS2019" goto SetVS2019 if /I "%1"=="VS2017" goto SetVS2017 if /I "%1"=="VS2015" goto SetVS2015 if /I "%1"=="VS2013" goto SetVS2013 @@ -107,27 +108,86 @@ if defined VS140COMNTOOLS ( ) if /I "%1"=="VS2015" goto SetWinDDK +:SetVS2019 +if not defined VS160COMNTOOLS ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\BuildTools" ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( + if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" + ) + del vswhereInfo + ) else ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( + if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" + ) + del vswhereInfo + ) + ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( + if exist "%ProgramFiles%\Microsoft Visual Studio\2019\BuildTools" ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 16,17 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( + if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" + ) + del vswhereInfo + ) else ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 16,17 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( + if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" + ) + del vswhereInfo + ) + ) else ( + if /I "%1"=="VS2019" goto ToolNotInstall + goto SetWinDDK + ) +) + +if defined VCToolsInstallDir ( + if not defined VS2019_PREFIX ( + set "VS2019_PREFIX=%VCToolsInstallDir%" + ) + if not defined WINSDK10_PREFIX ( + if defined WindowsSdkVerBinPath ( + set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%" + ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\" + ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\" + ) + ) +) + :SetVS2017 if not defined VS150COMNTOOLS ( if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\BuildTools" ( - for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools`) do ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" ) + del vswhereInfo ) else ( - for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe"`) do ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" ) + del vswhereInfo ) ) else if exist "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" ( if exist "%ProgramFiles%\Microsoft Visual Studio\2017\BuildTools" ( - for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools`) do ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 15,16 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" ) + del vswhereInfo ) else ( - for /f "usebackq tokens=1* delims=: " %%i in (`"%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe"`) do ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -version 15,16 > vswhereInfo + for /f "usebackq tokens=1* delims=: " %%i in (vswhereInfo) do ( if /i "%%i"=="installationPath" call "%%j\VC\Auxiliary\Build\vcvars32.bat" ) + del vswhereInfo ) ) else ( if /I "%1"=="VS2017" goto ToolNotInstall @@ -139,14 +199,14 @@ if defined VCToolsInstallDir ( if not defined VS2017_PREFIX ( set "VS2017_PREFIX=%VCToolsInstallDir%" ) -) -if not defined WINSDK10_PREFIX ( - if defined WindowsSdkVerBinPath ( - set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%" - ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( - set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\" - ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( - set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\" + if not defined WINSDK10_PREFIX ( + if defined WindowsSdkVerBinPath ( + set "WINSDK10_PREFIX=%WindowsSdkVerBinPath%" + ) else if exist "%ProgramFiles(x86)%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=%ProgramFiles(x86)%\Windows Kits\10\bin\" + ) else if exist "%ProgramFiles%\Windows Kits\10\bin" ( + set "WINSDK10_PREFIX=%ProgramFiles%\Windows Kits\10\bin\" + ) ) ) -- cgit v1.2.3