1
0
mirror of https://github.com/simh/simh.git synced 2026-01-25 19:56:25 +00:00

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
This commit is contained in:
Mark Pizzolato
2024-04-28 14:12:26 -10:00
parent 6767c1a9d5
commit 3bbaab7f5d

View File

@@ -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