mirror of
https://github.com/simh/simh.git
synced 2026-04-17 00:36:00 +00:00
Visual Studio Projects: Avoid modifying simh.sln while build_vstudio converts
When converting to a newer Visual Studio version, a new solution file is created named simh-'vsversion'.sln so that we don't modify any files managed by git. The resulting converted solution file will be automatically used when build_vstudio.bat is subsequently run and that solution can be opened directly by the Visual Studio IDE.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -44,6 +44,7 @@ ipch/
|
|||||||
Visual Studio Projects/*
|
Visual Studio Projects/*
|
||||||
!Visual Studio Projects/*.vcproj
|
!Visual Studio Projects/*.vcproj
|
||||||
!Visual Studio Projects/*.sln
|
!Visual Studio Projects/*.sln
|
||||||
|
Visual Studio Projects/*-*.sln
|
||||||
!Visual Studio Projects/0ReadMe_Projects.txt
|
!Visual Studio Projects/0ReadMe_Projects.txt
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
This dirctory contains a set of Visual Studio 2008 build projects for the
|
This directory contains a set of Visual Studio 2008 build projects for the
|
||||||
current simh code base. When used (with Visual Studio Express 2008 or
|
current simh code base. When used (with Visual Studio Express 2008 or
|
||||||
or a later Visual Studio version) it populates a directory tree under the
|
or a later Visual Studio version) it populates a directory tree under the
|
||||||
BIN directory of the Simh distribution for temporary build files and
|
BIN directory of the Simh distribution for temporary build files and
|
||||||
@@ -79,7 +79,10 @@ conversion process.
|
|||||||
|
|
||||||
If you have a version of Visual Studio installed and want to build all the
|
If you have a version of Visual Studio installed and want to build all the
|
||||||
simulators from a command prompt, the file build_vstudio.bat in the root
|
simulators from a command prompt, the file build_vstudio.bat in the root
|
||||||
of the simh source tree will do that without any furthur interaction.
|
of the simh source tree will do that without any furthur interaction. In
|
||||||
|
fact, the best way to convert the VS2008 solution and project files is by
|
||||||
|
using build_vstudio.bat since it will create a new solution file named
|
||||||
|
Simh-2022.sln that can then be used directly by the Visual Studio IDE.
|
||||||
|
|
||||||
Almost all newer Visual Studio versions after VS2008 will build executables
|
Almost all newer Visual Studio versions after VS2008 will build executables
|
||||||
that only run on the system that built it or one running the same OS.
|
that only run on the system that built it or one running the same OS.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
@echo off
|
@echo on
|
||||||
:: Rebuild all of SIMH simulators using Visual Studio
|
:: Rebuild all of SIMH simulators using Visual Studio
|
||||||
::
|
::
|
||||||
:: If this procedure is not invoked from a Developer command prompt
|
:: If this procedure is not invoked from a Developer command prompt
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
set _BUILD_CONFIG=Release
|
set _BUILD_CONFIG=Release
|
||||||
set _BUILD_PROJECTS=
|
set _BUILD_PROJECTS=
|
||||||
set _REBUILD_PROJECTS=
|
set _REBUILD_PROJECTS=
|
||||||
set _BUILD_PROJECT_DIR=%~dp0\Visual Studio Projects\
|
set _BUILD_PROJECT_DIR=%~dp0Visual Studio Projects\
|
||||||
:_CheckArg
|
:_CheckArg
|
||||||
if "%1" == "" goto _DoneArgs
|
if "%1" == "" goto _DoneArgs
|
||||||
if /i "%1" == "Debug" set _BUILD_CONFIG=Debug& shift & goto _CheckArg
|
if /i "%1" == "Debug" set _BUILD_CONFIG=Debug& shift & goto _CheckArg
|
||||||
@@ -166,11 +166,14 @@ exit /B 0
|
|||||||
:GotVC
|
:GotVC
|
||||||
set _BUILD_PARALLEL=8
|
set _BUILD_PARALLEL=8
|
||||||
if %_BUILD_PARALLEL% GTR %NUMBER_OF_PROCESSORS% set _BUILD_PARALLEL=%NUMBER_OF_PROCESSORS%
|
if %_BUILD_PARALLEL% GTR %NUMBER_OF_PROCESSORS% set _BUILD_PARALLEL=%NUMBER_OF_PROCESSORS%
|
||||||
|
set _SLN_FILE=%_BUILD_PROJECT_DIR%Simh.sln
|
||||||
|
if exist "%_BUILD_PROJECT_DIR%Simh-%_VC_VER%.sln" set _SLN_FILE=%_BUILD_PROJECT_DIR%Simh-%_VC_VER%.sln
|
||||||
SET _X_SLN_VERSION=
|
SET _X_SLN_VERSION=
|
||||||
for /F "usebackq tokens=8" %%a in (`findstr /C:"Microsoft Visual Studio Solution File, Format Version" "%_BUILD_PROJECT_DIR%Simh.sln"`) do SET _X_SLN_VERSION=%%a
|
echo _SLN_FILE=%_SLN_FILE%
|
||||||
|
for /F "usebackq tokens=8" %%a in (`findstr /C:"Microsoft Visual Studio Solution File, Format Version" "%_SLN_FILE%"`) do SET _X_SLN_VERSION=%%a
|
||||||
|
|
||||||
if not "%_VC_VER%" == "9" goto _DoMSBuild
|
if not "%_VC_VER%" == "9" goto _DoMSBuild
|
||||||
if "%_BUILD_PROJECTS%" == "" vcbuild /nologo /M%_BUILD_PARALLEL% /useenv /rebuild "%_BUILD_PROJECT_DIR%Simh.sln" "%_BUILD_CONFIG%|Win32" & goto :EOF
|
if "%_BUILD_PROJECTS%" == "" vcbuild /nologo /M%_BUILD_PARALLEL% /useenv /rebuild "%_SLN_FILE%" "%_BUILD_CONFIG%|Win32" & goto :EOF
|
||||||
|
|
||||||
set _BUILD_PROJECTS=%_BUILD_PROJECTS:~1%
|
set _BUILD_PROJECTS=%_BUILD_PROJECTS:~1%
|
||||||
:_NextProject
|
:_NextProject
|
||||||
@@ -183,19 +186,23 @@ vcbuild /nologo /useenv /rebuild "%_BUILD_PROJECT_DIR%%_BUILD_PROJECT%.vcproj" "
|
|||||||
goto _NextProject
|
goto _NextProject
|
||||||
|
|
||||||
:_DoMSBuild
|
:_DoMSBuild
|
||||||
if "%_X_SLN_VERSION%" == "10.00" echo Converting the VS2008 projects to VS%_VC_VER%, this will take several (3-5) minutes & DevEnv /Upgrade "%_BUILD_PROJECT_DIR%Simh.sln"
|
if "%_X_SLN_VERSION%" == "10.00" set _NEW_SLN_FILE=%_BUILD_PROJECT_DIR%Simh-%_VC_VER%.sln
|
||||||
|
if "%_X_SLN_VERSION%" == "10.00" copy /y "%_SLN_FILE%" "%_NEW_SLN_FILE%" >NUL & echo Converting the VS2008 projects to VS%_VC_VER%, this will take several (3-5) minutes & DevEnv /Upgrade "%_NEW_SLN_FILE%" & set _SLN_FILE=%_NEW_SLN_FILE%
|
||||||
|
set _NEW_SLN_FILE=
|
||||||
if not "%_VC_VER%" == "2022" goto _RunBuild
|
if not "%_VC_VER%" == "2022" goto _RunBuild
|
||||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
||||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
||||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v150\Platforms\x64\PlatformToolsets\v141_xp" goto _DoXPConvert
|
||||||
:_DoXPConvert
|
:_DoXPConvert
|
||||||
for /F "usebackq tokens=1" %%a in (`findstr /C:"<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>" "%_BUILD_PROJECT_DIR%BuildROMs.vcxproj"`) do SET _X_PROJS_CONVERTED=%%a
|
set _X_PROJS_CONVERTED=
|
||||||
|
for /F "usebackq tokens=1" %%a in (`findstr /C:"<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>" "%_BUILD_PROJECT_DIR%BuildROMs.vcxproj"`) do set _X_PROJS_CONVERTED=%%a
|
||||||
if not "%_X_PROJS_CONVERTED%" == "" goto _RunBuild
|
if not "%_X_PROJS_CONVERTED%" == "" goto _RunBuild
|
||||||
echo Converting the VS2022 projects to generate XP compatible binaries
|
echo Converting the VS2022 projects to generate XP compatible binaries
|
||||||
Powershell -NoLogo -File "%~dp0\Visual Studio Projects\ConvertToXPProject.ps1" "%~dp0\Visual Studio Projects\*.vcxproj"
|
Powershell -NoLogo -File "%~dp0\Visual Studio Projects\ConvertToXPProject.ps1" "%~dp0\Visual Studio Projects\*.vcxproj"
|
||||||
set _X_PROJS_CONVERTED=
|
set _X_PROJS_CONVERTED=
|
||||||
:_RunBuild
|
:_RunBuild
|
||||||
if "%_BUILD_PROJECTS%" == "" MSBuild /nologo "%_BUILD_PROJECT_DIR%Simh.sln" /maxCpuCount:%_BUILD_PARALLEL% /Target:Rebuild /Property:Configuration=%_BUILD_CONFIG% /Property:Platform=Win32 /fileLogger "/fileLoggerParameters:LogFile=%_BUILD_PROJECT_DIR%Build-VS%_VC_VER%.log" & goto :EOF
|
if "%_BUILD_PROJECTS%" == "" MSBuild /nologo "%_SLN_FILE%" /maxCpuCount:%_BUILD_PARALLEL% /Target:Rebuild /Property:Configuration=%_BUILD_CONFIG% /Property:Platform=Win32 /fileLogger "/fileLoggerParameters:LogFile=%_BUILD_PROJECT_DIR%Build-VS%_VC_VER%.log" & goto :EOF
|
||||||
set _BUILD_PROJECTS=%_BUILD_PROJECTS:~1%
|
set _BUILD_PROJECTS=%_BUILD_PROJECTS:~1%
|
||||||
set _REBUILD_PROJECTS=%_REBUILD_PROJECTS:~1%
|
set _REBUILD_PROJECTS=%_REBUILD_PROJECTS:~1%
|
||||||
MSBuild /nologo "%_BUILD_PROJECT_DIR%Simh.sln" /maxCpuCount:%_BUILD_PARALLEL% /Target:%_REBUILD_PROJECTS% /Property:Configuration=%_BUILD_CONFIG% /Property:Platform=Win32 "/fileLoggerParameters:LogFile=%_BUILD_PROJECT_DIR%Build-VS%_VC_VER%.log" & goto :EOF
|
MSBuild /nologo "%_SLN_FILE%" /maxCpuCount:%_BUILD_PARALLEL% /Target:%_REBUILD_PROJECTS% /Property:Configuration=%_BUILD_CONFIG% /Property:Platform=Win32 "/fileLoggerParameters:LogFile=%_BUILD_PROJECT_DIR%Build-VS%_VC_VER%.log" & goto :EOF
|
||||||
|
set _SLN_FILE=
|
||||||
|
|||||||
Reference in New Issue
Block a user