From 3bbaab7f5d3d7935238c9626d14765b895d29219 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sun, 28 Apr 2024 14:12:26 -1000 Subject: [PATCH] Visual Studio Projects: Add logic supporting building with different VS2022s - Multiple VS2022 versions support when windows-build provides it - Always leverage whatever git version is available locally --- Visual Studio Projects/Pre-Build-Event.cmd | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/Visual Studio Projects/Pre-Build-Event.cmd b/Visual Studio Projects/Pre-Build-Event.cmd index 1eed0c7c..5100a590 100644 --- a/Visual Studio Projects/Pre-Build-Event.cmd +++ b/Visual Studio Projects/Pre-Build-Event.cmd @@ -38,7 +38,7 @@ set _ARG= rem Everything implicitly requires BUILD to also be set to have rem any meaning, it always gets set. set _X_BUILD=BUILD -set _X_REQUIRED_WINDOWS_BUILD=20230504 +set _X_REQUIRED_WINDOWS_BUILD=20240427 call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR echo _VC_VER=%_VC_VER% echo _MSVC_VER=%_MSVC_VER% @@ -144,11 +144,17 @@ set _X_LAST_WINDOWS_BUILD= if not exist ../../windows-build/lib/VisualCVersionSupport.txt goto _find_vc_support set _X_VC_VER= +SET _X_MSVC_VER= if "%_MSVC_TOOLSET_VER%" EQU "v140" set _VC_VER=2015 if "%_MSVC_TOOLSET_VER%" EQU "v141" set _VC_VER=2017 if "%_MSVC_TOOLSET_VER%" EQU "v142" set _VC_VER=2019 if "%_MSVC_TOOLSET_VER%" EQU "v143" set _VC_VER=2022 for /F "usebackq tokens=2*" %%i in (`findstr /C:"_VC_VER=%_VC_VER% " ..\..\windows-build\lib\VisualCVersionSupport.txt`) do SET _X_VC_VER=%%i %%j +for /F "usebackq delims== tokens=2" %%i in (`findstr /C:"_MSVC_VER=" ..\..\windows-build\lib\VisualCVersionSupport.txt`) do SET _X_MSVC_VER=%%i +echo _MSVC_VER=%_MSVC_VER% +echo _X_MSVC_VER=%_X_MSVC_VER% +if "%_X_VC_VER%" neq "" if "%_X_MSVC_VER%" neq "" echo Library support for %_X_VC_VER% (%_X_MSVC_VER%) is available +if "%_X_VC_VER%" neq "" if "%_X_MSVC_VER%" neq "" goto _done_libsdl if "%_X_VC_VER%" neq "" echo Library support for %_X_VC_VER% is available if "%_X_VC_VER%" neq "" goto _done_libsdl :_find_vc_support @@ -430,14 +436,22 @@ if "%_GIT_TMP_%" neq "" goto GitFound call :WhichInPath cl.exe _VC_CL_ for /f "tokens=1-4 delims=\" %%a in ("%_VC_CL_%") do set _GIT_BASE_="%%a\%%b\%%c\%%d\" for /r %_GIT_BASE_% %%a in (git.exe) do if exist "%%a" set _GIT_TMP_=%%a +if "%_GIT_TMP_%" neq "" call :AddToPath "%_GIT_TMP_%" :GitFound -set %_GIT_TMP%=%_GIT_TMP_% +if "%_GIT_TMP_%" equ "" echo *** git not found +if "%_GIT_TMP_%" neq "" set %_GIT_TMP%=%_GIT_TMP_% set _VC_CL_= set _GIT_BASE_= set _GIT_TMP_= set _GIT_TMP= exit /B 0 +:AddToPath +set _TO_PATH=%~p1 +PATH %PATH%;%_TO_PATH% +set _TO_PATH= +exit /B 0 + :FindTar set _TAR_TMP=%1 call :WhichInPath tar.exe _TAR_TMP_ @@ -523,6 +537,12 @@ exit /B 0 :CheckDirectoryVCSupport set _VC_Check_Path=%~3%~2/ set _VC_Check_Path=%_VC_Check_Path:/=\% +set _X_VC_VER= +set _XX_VC_VER_DIR=lib-VC%_VC_VER% +if "%_XX_VC_VER_DIR%" equ "lib-VC9" set _XX_VC_VER_DIR=lib-VC2008 +if exist "%_VC_Check_Path%\VisualCVersionSupport.txt" for /F "usebackq tokens=2*" %%i in (`findstr /C:"_VC_VER=%_VC_VER% " "%_VC_Check_Path%\VisualCVersionSupport.txt"`) do SET _X_VC_VER=%%i %%j +if "%_XX_VC_VER_DIR%" neq "%2" exit /B 0 +if "%_VC_VER%" equ "2022" set _VC_Check_Path=%_VC_Check_Path%%_MSVC_VER%\ if not exist "%_VC_Check_Path%VisualCVersionSupport.txt" exit /B 1 for /F "usebackq tokens=2*" %%k in (`findstr /C:"_VC_VER=%_VC_VER% " "%_VC_Check_Path%VisualCVersionSupport.txt"`) do set %1=%_VC_Check_Path% exit /B 0