From 95a6892aacfef6c7862058fcdc495f6b35df9367 Mon Sep 17 00:00:00 2001 From: Matthew Carlson Date: Wed, 19 Jun 2024 21:31:38 -0700 Subject: BaseTools: Add VS2022 support. Adding tools_def for VS2022. Update WindowsVsToolChain to support VS2022. Update set_vsPrefix_envs and toolsetup and edksetup to support VS2022. Signed-off-by: Aaron Pop --- BaseTools/set_vsprefix_envs.bat | 62 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) (limited to 'BaseTools/set_vsprefix_envs.bat') diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.bat index 0b9a0c75b9..39e4e004b5 100644 --- a/BaseTools/set_vsprefix_envs.bat +++ b/BaseTools/set_vsprefix_envs.bat @@ -18,6 +18,7 @@ set SCRIPT_ERROR=1 goto :EOF :main +if /I "%1"=="VS2022" goto SetVS2022 if /I "%1"=="VS2019" goto SetVS2019 if /I "%1"=="VS2017" goto SetVS2017 if /I "%1"=="VS2015" goto SetVS2015 @@ -166,6 +167,67 @@ if not defined WINSDK_PATH_FOR_RC_EXE ( if /I "%1"=="VS2019" goto SetWinDDK +:SetVS2022 +if not defined VS170COMNTOOLS ( + @REM clear two envs so that vcvars32.bat can run successfully. + set VSINSTALLDIR= + set VCToolsVersion= + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" ( + if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2022\BuildTools" ( + call "%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 17,18 > 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 17,18 > 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\2022\BuildTools" ( + call "%ProgramFiles%\Microsoft Visual Studio\Installer\vswhere.exe" -products Microsoft.VisualStudio.Product.BuildTools -version 17,18 > 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 17,18 > 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"=="VS2022" goto ToolNotInstall + goto SetWinDDK + ) +) + +if defined VCToolsInstallDir ( + if not defined VS2022_PREFIX ( + set "VS2022_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 WINSDK_PATH_FOR_RC_EXE ( + if defined WINSDK10_PREFIX ( + set "WINSDK_PATH_FOR_RC_EXE=%WINSDK10_PREFIX%x86" + ) +) + +if /I "%1"=="VS2022" goto SetWinDDK + :SetWinDDK if not defined WINDDK3790_PREFIX ( set WINDDK3790_PREFIX=C:\WINDDK\3790.1830\bin\ -- cgit From 91a822749a6664dcaf0f67a837dcf0cd05783d17 Mon Sep 17 00:00:00 2001 From: wilson_chen Date: Fri, 26 Jul 2024 17:31:46 +0800 Subject: BaseTools: fix build error with TOOL_CHAIN_TAG VS2015 & VS2015x86 Start the build with TOOL_CHAIN_TAG VS2015 by launch: Build -t VS2015 ERROR: Would get following build error message: 'c:\Program' is not recognized as an internal or external command, operable program or batch file. NMAKE : fatal error U1077: '"c:\Program Files\Windows Kits\8.1\bin\x86\\rc.exe' : return code '0x1' Stop. Fix the build error, Tested : TOOL_CHAIN_TAG = VS2015 (>Build -t VS2015) TOOL_CHAIN_TAG = VS2015x86 (>Build -t VS2015x86) Signed-off-by: wilson_chen --- BaseTools/set_vsprefix_envs.bat | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'BaseTools/set_vsprefix_envs.bat') diff --git a/BaseTools/set_vsprefix_envs.bat b/BaseTools/set_vsprefix_envs.bat index 39e4e004b5..df2c771951 100644 --- a/BaseTools/set_vsprefix_envs.bat +++ b/BaseTools/set_vsprefix_envs.bat @@ -35,10 +35,18 @@ if defined VS140COMNTOOLS ( set "VS2015_PREFIX=%VS140COMNTOOLS:~0,-14%" ) if not defined WINSDK81_PREFIX ( - set "WINSDK81_PREFIX=c:\Program Files\Windows Kits\8.1\bin\" + if exist "%ProgramFiles%\Windows Kits\8.1\bin" ( + set "WINSDK81_PREFIX=%ProgramFiles%\Windows Kits\8.1\bin\" + ) else if exist "%ProgramFiles(x86)%\Windows Kits\8.1\bin" ( + set "WINSDK81_PREFIX=%ProgramFiles(x86)%\Windows Kits\8.1\bin\" + ) ) if not defined WINSDK81x86_PREFIX ( - set "WINSDK81x86_PREFIX=c:\Program Files (x86)\Windows Kits\8.1\bin\" + if exist "%ProgramFiles(x86)%\Windows Kits\8.1\bin" ( + set "WINSDK81x86_PREFIX=%ProgramFiles(x86)%\Windows Kits\8.1\bin\" + ) else if exist "%ProgramFiles%\Windows Kits\8.1\bin" ( + set "WINSDK81x86_PREFIX=%ProgramFiles%\Windows Kits\8.1\bin\" + ) ) ) else ( if /I "%1"=="VS2015" goto ToolNotInstall -- cgit