mirror of
https://github.com/simh/simh.git
synced 2026-01-11 23:52:58 +00:00
Visual Studio Projects: Build Cleanup for Initial VS2026 Support
- Cleanup build details and provide initial detection support for building Visual Studio 2026. - Automatically leverage the v141 Visual Studio platform Toolset if it is installed. This avoids failing build attempts when windows_build hasn't yet been updated to support the frequently changing VS2022 or VS2026 build components. - Fix pdp11.vcproj to avoid warning when project is converted. - Fix trivial compiler warnings in alpha_cpu.c and hp_tapelib.c
This commit is contained in:
parent
3e3fc123c7
commit
3503e7b794
@ -1732,7 +1732,8 @@ else { /* otherwise the command
|
||||
dpprintf (cvptr->device, TL_DEB_CMD, "%s succeeded\n",
|
||||
opcode_names [opcode]);
|
||||
|
||||
outbound = IFGTC | RQSRV | Class_Control; /* indicate that a control command was executed */
|
||||
outbound = (CNTLR_IFN_IBUS)IFGTC | (CNTLR_IFN_IBUS)RQSRV | (CNTLR_IFN_IBUS)Class_Control;
|
||||
/* indicate that a control command was executed */
|
||||
}
|
||||
|
||||
else if (flags & CMXEQ) { /* otherwise if the command is to be executed */
|
||||
@ -1745,7 +1746,8 @@ else { /* otherwise the command
|
||||
CNTLR_UPTR->PHASE = Wait_Phase; /* then set up the wait phase */
|
||||
CNTLR_UPTR->OPCODE = opcode; /* and command opcode on the controller unit */
|
||||
|
||||
outbound = IFGTC | RQSRV | cmd_props [opcode].class; /* return the transfer class (read or write) */
|
||||
outbound = (CNTLR_IFN_IBUS)IFGTC | (CNTLR_IFN_IBUS)RQSRV | (CNTLR_IFN_IBUS)(cmd_props [opcode].class);
|
||||
/* return the transfer class (read or write) */
|
||||
}
|
||||
|
||||
else { /* otherwise it's a control command */
|
||||
@ -1765,7 +1767,8 @@ else { /* otherwise the command
|
||||
|
||||
activate_unit (cvptr, uptr); /* schedule the start phase */
|
||||
|
||||
outbound = IFGTC | Class_Control; /* indicate a control command is executing */
|
||||
outbound = (CNTLR_IFN_IBUS)IFGTC | (CNTLR_IFN_IBUS)Class_Control;
|
||||
/* indicate a control command is executing */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -54,7 +54,8 @@ The project files in this directory build these simulators with support for
|
||||
both network and asynchronous I/O.
|
||||
|
||||
To build any of the supported simulators you should open the simh.sln file
|
||||
in this directory.
|
||||
in this directory or build directly from a Windows Command prompt using
|
||||
the build_vstudio.bat script.
|
||||
|
||||
The installer for Visual Studio 2008 SP1 is available from:
|
||||
|
||||
@ -65,7 +66,7 @@ on that DVD image. No need to install "Silverlight Runtime" or
|
||||
"Microsoft SQL Server 2008 Express Edition". Depending on your OS Version
|
||||
you may be prompted to install an older version of .NET Framework which should
|
||||
be installed. Once that install completes, you will need to run Windows-Update
|
||||
(with "Recieve updates for other Microsoft products enabled") to completely
|
||||
(with "Receive updates for other Microsoft products enabled") to completely
|
||||
update the Visual Studio environment you've just installed.
|
||||
|
||||
Visual Studio Express 2008 will build executables that will run on all Windows
|
||||
@ -81,29 +82,31 @@ conversion process.
|
||||
|
||||
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
|
||||
of the simh source tree will do that without any furthur interaction. In
|
||||
of the simh source tree will do that without any further 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.
|
||||
Simh-2022.sln or Simh-2026.sln that can then be used directly by the
|
||||
Visual Studio IDE.
|
||||
|
||||
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.
|
||||
|
||||
If you're using Visual Studio Community 2022, and you follow these
|
||||
installation instructions, you can also build simulator executables which
|
||||
will run on all versions of Windows from XP onward if you install as
|
||||
indicated here and you use the build_vstudio.bat file to perform the
|
||||
project conversions. Once projects are converted, they can be used in
|
||||
the Visual Studio 2022 IDE for further development.
|
||||
If you're using Visual Studio Community 2022 or 2026, and you follow these
|
||||
installation instructions, you can also build simulator executables using
|
||||
the newer Visual Studio IDE and tools while not necessarily needing updated
|
||||
windows_build support. This is convenient since both VS2022 and VS2026
|
||||
come up with updates possibly many times per month and once an update is
|
||||
installed, the windows_update build support won't be available for the
|
||||
latest version. This problem only affects simulators compiled in Release
|
||||
mode. Once projects are converted, by the build_vstudio.bat file directly
|
||||
with the IDE, the Visual Studio 2022 or 2026 IDE for further development.
|
||||
|
||||
- New install
|
||||
- In the "Workloads" pane, check "Desktop development with C++" workload's
|
||||
checkbox, if not already checked.
|
||||
- Click on the tab labeled "Individual components"
|
||||
- In the "Individual components" pane:
|
||||
- Enter "XP" in the "Search components (Ctrl-Q)" field.
|
||||
- Locate the "Compilers, build tools and runtimes" heading
|
||||
- Select "C++ for Windows XP Support for VS 2017 (v141) tools [Deprecated]" checkbox.
|
||||
- Scroll down and check the box next to "MSVC v141 - VS 2017 C++ x64/x86 build tools (v14.16)"
|
||||
- Continue to customize your VS 2022 installation as needed.
|
||||
- Click on "Install" in the lower right hand corner
|
||||
|
||||
@ -112,9 +115,8 @@ the Visual Studio 2022 IDE for further development.
|
||||
- In the "Modifying --" window, click on "Individual Components"
|
||||
- Click on the tab labeled "Individual components"
|
||||
- In the "Individual components" pane:
|
||||
- Enter "XP" in the "Search components (Ctrl-Q)" field.
|
||||
- Locate the "Compilers, build tools and runtimes" heading
|
||||
- Select "C++ for Windows XP Support for VS 2017 (v141) tools [Deprecated]" checkbox.
|
||||
- In the "Individual components" pane:
|
||||
- Scroll down and check the box next to "MSVC v141 - VS 2017 C++ x64/x86 build tools (v14.16)"
|
||||
- Continue to customize your VS 2022 installation as needed.
|
||||
- Click on the "Modify" button in the lower right corner of the Window.
|
||||
|
||||
|
||||
96
Visual Studio Projects/ConvertToV141Project.ps1
Normal file
96
Visual Studio Projects/ConvertToV141Project.ps1
Normal file
@ -0,0 +1,96 @@
|
||||
# This script converts Visual Studio 2022 and 2026 upgraded VS2008 projects to produce
|
||||
# VS2022 or VS2026 projects that will build executables that will link against Visual
|
||||
# Studio 2017 libraries which are stable in the windows_build repo.
|
||||
#
|
||||
#$SDK = $env:WindowsSDKVersion
|
||||
param(
|
||||
[string]$Solution
|
||||
)
|
||||
$changedProjects = 0
|
||||
$changedSolution = 0
|
||||
$SDK = "10.0.26100.0\"
|
||||
$SDK = $SDK.Replace("\","")
|
||||
$solutionFile = $Solution
|
||||
$solutionPath = Split-Path -Path $solutionFile -Parent
|
||||
if (-not $solutionPath.Contains('\'))
|
||||
{
|
||||
$solutionPath = "."
|
||||
}
|
||||
if (-not (Test-Path -Path $solutionFile -PathType Any)) {if (-not (Get-Item -Path $solutionFile -ErrorAction Ignore)) {Write-Host "No such file: $solutionFile"; }}
|
||||
$solution = Get-Content -Path $solutionFile -Raw
|
||||
$startingSolution = $Solution
|
||||
if ($solution -match 'Project\("{([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})}"\) = "BuildROMs", "BuildROMs.[a-z]*", "{([0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12})}"')
|
||||
{
|
||||
$BuildROMsGUID = $($Matches[2])
|
||||
}
|
||||
$Projects = [Regex]::Matches($solution, '(?sm)}"\) = "(?<project>.*?)", "(?<file>.*?)"')
|
||||
if ($solution.Contains(".vcproj"))
|
||||
{
|
||||
Write-Host "Attempting to fix Solution file which wasn't completely migrated:"
|
||||
Write-Host $solutionFile
|
||||
}
|
||||
$dependencyPattern = "(?sm)\s\sProjectSection\(ProjectDependencies\) \= postProject.*?({.*?}).*?EndProjectSection"
|
||||
$solution = $solution -replace $dependencyPattern, ""
|
||||
$solution = $solution -replace ".vcproj", ".vcxproj"
|
||||
|
||||
if (-not $solution.Contains("GlobalSection(ExtensibilityGlobals)"))
|
||||
{
|
||||
$solution = $solution.Replace(
|
||||
"EndGlobal
|
||||
",
|
||||
" GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {$(New-Guid)}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
")
|
||||
|
||||
$solution = $solution.Replace("Format Version 10.00", "Format Version 12.00")
|
||||
$solution = $solution.Replace("Visual C++ Express 2008", "Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.36705.20 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1")
|
||||
}
|
||||
ForEach ($Project in $Projects)
|
||||
{
|
||||
$projFile = $solutionPath + "\" + $($Project.Groups['file'].Value).Replace(".vcproj", ".vcxproj")
|
||||
if (-not (Test-Path -Path $ProjFile -PathType Any)) {if (-not (Get-Item -Path $ProjFile -ErrorAction Ignore)) {Write-Host "No such file: $ProjFile"; continue; }}
|
||||
$projString = Get-Content -Path $projFile -Raw
|
||||
$startingProjString = $projString
|
||||
if ($projString.Contains("<WindowsTargetPlatformVersion>")) {Write-Host "$projFile - already converted"; continue; }
|
||||
$projString = $projString.Replace(
|
||||
"<Keyword>Win32Proj</Keyword>
|
||||
",
|
||||
"<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>$SDK</WindowsTargetPlatformVersion>
|
||||
")
|
||||
$projString = $projString.Replace("<PlatformToolset>v143</PlatformToolset>","<PlatformToolset>v141</PlatformToolset>")
|
||||
$projString = $projString.Replace("<PlatformToolset>v144</PlatformToolset>","<PlatformToolset>v141</PlatformToolset>")
|
||||
$projString = $projString.Replace("<PlatformToolset>v145</PlatformToolset>","<PlatformToolset>v141</PlatformToolset>")
|
||||
$projString = $projString.Replace(
|
||||
' Label="LocalAppDataPlatform" />
|
||||
',' Label="LocalAppDataPlatform" />
|
||||
<Import Project="simh.props" />
|
||||
')
|
||||
if (-not $projString.Contains($BuildROMsGUID))
|
||||
{
|
||||
$ProjString = $ProjString.Replace(
|
||||
' <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />',
|
||||
(' <ItemGroup>
|
||||
<ProjectReference Include="BuildROMs.vcxproj">
|
||||
<Project>{' + $BuildROMsGUID.ToLower() + '}</Project>
|
||||
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />'))
|
||||
}
|
||||
if (-not ($projString -ceq $startingProjString))
|
||||
{
|
||||
$projString | Out-File -Force -FilePath "$projFile" -Encoding utf8
|
||||
$changedProjects = $changedProjects + 1
|
||||
}
|
||||
}
|
||||
if (-not ($solution -ceq $startingSolution))
|
||||
{
|
||||
$solution | Out-File -Force -FilePath "$solutionFile" -Encoding utf8
|
||||
$changedSolution = 1
|
||||
}
|
||||
Write-Host "Projects Changed: $changedProjects Solution Changed: $changedSolution"
|
||||
@ -1,26 +0,0 @@
|
||||
# This script converts Visual Studio 2022 upgraded VS2008 projects to produce VS2022
|
||||
# projects that will build executables that will run on all versions of windows since XP
|
||||
#
|
||||
ForEach ($arg in ($args))
|
||||
{
|
||||
if (-not (Test-Path -Path $arg -PathType Any)) {if (-not (Get-Item -Path $arg -ErrorAction Ignore)) {Write-Host "No such file: $arg"; continue; }}
|
||||
ForEach ($file in (Get-Item -Path $arg))
|
||||
{
|
||||
$string = Get-Content -Path $file -Raw
|
||||
if ($string.Contains("<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>")) {Write-Host "$file - already converted"; continue; }
|
||||
Write-Host "Processing: $file"
|
||||
$string = $string.Replace(
|
||||
"<Keyword>Win32Proj</Keyword>
|
||||
",
|
||||
"<Keyword>Win32Proj</Keyword>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
")
|
||||
$string = $string.Replace("<PlatformToolset>v143</PlatformToolset>","<PlatformToolset>v141_xp</PlatformToolset>")
|
||||
$string = $string.Replace(
|
||||
' Label="LocalAppDataPlatform" />
|
||||
',' Label="LocalAppDataPlatform" />
|
||||
<Import Project="simh.props" />
|
||||
')
|
||||
$string | Out-File -Force -FilePath "$file" -Encoding utf8
|
||||
}
|
||||
}
|
||||
@ -34,9 +34,6 @@
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
@ -120,9 +117,6 @@
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
|
||||
@ -25,7 +25,9 @@ rem - performing the activities which make confirm or generate the git
|
||||
rem repository commit id available in an include file during compiles.
|
||||
rem
|
||||
rem
|
||||
|
||||
set _CONFIGURATION_DIR=%~p1
|
||||
set _CONFIGURATION_NAME=Debug
|
||||
if not "Debug" == "%_CONFIGURATION_DIR:~-6,-1%" if not "Debug\BuildTools" == "%_CONFIGURATION_DIR:~-17,-1%" set _CONFIGURATION_NAME=Release
|
||||
|
||||
set _PDB=%~dpn1.pdb
|
||||
@ -40,7 +42,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=20251112
|
||||
set _X_REQUIRED_WINDOWS_BUILD=20251119
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
echo _VC_VER=%_VC_VER%
|
||||
echo _MSVC_VER=%_MSVC_VER%
|
||||
@ -65,8 +67,7 @@ goto _next_arg
|
||||
pushd ..
|
||||
if "%_X_ROM%" == "" goto _done_rom
|
||||
SET _BLD=
|
||||
if exist BIN\NT\Win32-Debug\BuildTools\BuildROMs.exe SET _BLD=BIN\NT\Win32-%_CONFIGURATION_NAME%\BuildTools\BuildROMs.exe
|
||||
if exist BIN\NT\Win32-Release\BuildTools\BuildROMs.exe SET _BLD=BIN\NT\Win32-%_CONFIGURATION_NAME%\BuildTools\BuildROMs.exe
|
||||
if exist "BIN\NT\Win32-%_CONFIGURATION_NAME%\BuildTools\BuildROMs.exe" SET _BLD=BIN\NT\Win32-%_CONFIGURATION_NAME%\BuildTools\BuildROMs.exe
|
||||
if "%_BLD%" == "" echo ************************************************
|
||||
if "%_BLD%" == "" echo ************************************************
|
||||
if "%_BLD%" == "" echo ** Project dependencies are not correct. **
|
||||
@ -77,8 +78,7 @@ if "%_BLD%" == "" echo error: Review the Output Tab for more details.
|
||||
if "%_BLD%" == "" exit 1
|
||||
%_BLD%
|
||||
if not errorlevel 1 goto _done_rom
|
||||
if not exist "BIN\NT\Win32-Release\BuildTools\BuildROMs.exe" exit 1
|
||||
del "BIN\NT\Win32-Release\BuildTools\BuildROMs.exe"
|
||||
if not exist "BIN\NT\Win32-%_CONFIGURATION_NAME%\BuildTools\BuildROMs.exe" exit 1
|
||||
popd
|
||||
goto _do_rom
|
||||
:_done_rom
|
||||
@ -530,6 +530,7 @@ if "%_VC_NUM_%" neq "" set %_VC_TMP%=%~1
|
||||
if "%_VC_NUM_%" neq "" goto _VCCheck_Done
|
||||
goto _VCCheck_Next
|
||||
:_VCCheck_Done
|
||||
if "%~1" equ "18" set %_VC_TMP%=2026
|
||||
set _VC_TMP=_MSVC_TOOLSET_
|
||||
:_VCTSCheck_Next
|
||||
shift
|
||||
|
||||
@ -950,7 +950,7 @@ while (reason == 0) {
|
||||
break;
|
||||
|
||||
case 0x61: /* AMASK */
|
||||
res = rbv & ~arch_mask;
|
||||
res = rbv & ~((t_uint64)arch_mask);
|
||||
break;
|
||||
|
||||
case 0x64: /* CMOVLE */
|
||||
|
||||
@ -6,11 +6,11 @@
|
||||
:: otherwise the installed Visual Studio tools will be used
|
||||
:: preferring newer Visual Studio versions over older ones.
|
||||
::
|
||||
:: If this is invoked with Visual Studio 2022 installed along with
|
||||
:: the "C++ for Windows XP Support for VS 2017 (v141) tools" option
|
||||
:: installed, then the project files will be converted, if needed
|
||||
:: to leverage the available support so that the executables created
|
||||
:: will run on all versions of Windows from XP onward.
|
||||
:: If this is invoked with Visual Studio 2022 or 2026 installed
|
||||
:: along with the "C++ for Windows Support for VS 2017 (v141) tools"
|
||||
:: option installed, then the project files will be converted, if
|
||||
:: needed, to leverage the stable windows_build support that doesn't
|
||||
:: change at least every month.
|
||||
::
|
||||
:: If this procedure is invoked from a Developer command prompt
|
||||
:: then the tool chain provided with the command prompt is used
|
||||
@ -22,7 +22,7 @@
|
||||
::
|
||||
:: The default is to build all simulators mentioned in the simh solution.
|
||||
:: Optionally, individual simulators may be built by listing the specific
|
||||
:: simulator names on the command line invoking this procedure.
|
||||
:: simulator name(s) on the command line invoking this procedure.
|
||||
::
|
||||
:: Individual simulator sources are in .\simulator_name
|
||||
:: Individual simulator executables are produced in .\BIN\NT\Win32-{Debug or Release}\
|
||||
@ -54,27 +54,44 @@ echo ** ERROR ** ERROR ** ERROR ** ERROR ** ERROR ** ERROR
|
||||
exit /b 1
|
||||
|
||||
:_DoneArgs
|
||||
if "%_BUILD_PROJECT_NAMES%" == "" echo Building All Projects with %_BUILD_CONFIG% Configuration
|
||||
if not "%_BUILD_PROJECT_NAMES%" == "" echo Building%_BUILD_PROJECT_NAMES% Projects with %_BUILD_CONFIG% Configuration
|
||||
set _VC_VER=
|
||||
if not "%VSINSTALLDIR%" == "" set _VC_DIR=%VSINSTALLDIR%
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
|
||||
set _VC_DIR=%ProgramFiles(x86)%\Microsoft Visual Studio 9.0
|
||||
if exist "%_VC_DIR%\VC\vcvarsall.bat" call "%_VC_DIR%\VC\vcvarsall.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat" call "%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\2022\Enterprise
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars32.bat" call "%ProgramFiles%\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\2022\Professional
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat" call "%ProgramFiles%\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\2022\Community
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\18\Enterprise
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars32.bat"
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\18\Professional
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\18\Community
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\2019\Community
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
set _VC_DIR=%ProgramFiles%\Microsoft Visual Studio\2017\Community
|
||||
if exist "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat" call "%_VC_DIR%\VC\Auxiliary\Build\vcvars32.bat"
|
||||
call :FindVCVersion _VC_VER _MSVC_VER _MSVC_TOOLSET_VER _MSVC_TOOLSET_DIR
|
||||
if not "%_VC_VER%" == "" goto GotVC
|
||||
if exist "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" call "%ProgramFiles(x86)%\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86
|
||||
@ -155,6 +172,7 @@ if "%_VC_NUM_%" neq "" set %_VC_TMP%=%~1
|
||||
if "%_VC_NUM_%" neq "" goto _VCCheck_Done
|
||||
goto _VCCheck_Next
|
||||
:_VCCheck_Done
|
||||
if "%~1" equ "18" set %_VC_TMP%=2026
|
||||
set _VC_TMP=_MSVC_TOOLSET_
|
||||
:_VCTSCheck_Next
|
||||
shift
|
||||
@ -165,6 +183,7 @@ if "%_VC_NUM_%" neq "" set %_VC_TMP%=%~1
|
||||
if "%_VC_NUM_%" neq "" goto _VCTSCheck_Done
|
||||
goto _VCTSCheck_Next
|
||||
:_VCTSCheck_Done
|
||||
if "%~1" equ "18" set %_VCTMP%=2026
|
||||
set _VC_TMP_=
|
||||
set _VC_TMP=
|
||||
set _VC_NUM_=
|
||||
@ -223,6 +242,10 @@ set %2=%~n1
|
||||
exit /B 0
|
||||
|
||||
:GotVC
|
||||
if "%_BUILD_PROJECT_NAMES%" == "" echo Building All Projects with %_BUILD_CONFIG% Configuration
|
||||
if not "%_BUILD_PROJECT_NAMES%" == "" echo Building%_BUILD_PROJECT_NAMES% Projects with %_BUILD_CONFIG% Configuration
|
||||
echo Building with Visual Studio Components from %_VC_DIR%
|
||||
if "%_VC_VER%" == "18" set _VC_VER=2026
|
||||
set _BUILD_PARALLEL=8
|
||||
if %_BUILD_PARALLEL% GTR %NUMBER_OF_PROCESSORS% set _BUILD_PARALLEL=%NUMBER_OF_PROCESSORS%
|
||||
set _SLN_FILE=%_BUILD_PROJECT_DIR%Simh.sln
|
||||
@ -246,21 +269,23 @@ goto _NextProject
|
||||
|
||||
:_DoMSBuild
|
||||
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 (5-8) minutes & DevEnv /Upgrade "%_NEW_SLN_FILE%" & set _SLN_FILE=%_NEW_SLN_FILE%
|
||||
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 (5-8) minutes... & echo Project conversion starting at %TIME% & DevEnv /Upgrade "%_NEW_SLN_FILE%" & set _SLN_FILE=%_NEW_SLN_FILE%
|
||||
if not "%_NEW_SLN_FILE%" == "" echo Project conversion completed at %TIME%
|
||||
set _NEW_SLN_FILE=
|
||||
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\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 not "%_VC_VER%" == "2022" if not "%_VC_VER%" == "2026" goto _RunBuild
|
||||
if exist "%_VC_DIR%\MSBuild\Microsoft\VC\v150\Platforms\Win32\PlatformToolsets\v141" goto _DoV141Convert
|
||||
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 "%_X_SLN_VERSION%" == "10.00" goto _DoV141Convert
|
||||
goto _RunBuild
|
||||
|
||||
:_DoXPConvert
|
||||
echo Doing XP Convert
|
||||
:_DoV141Convert
|
||||
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
|
||||
for /F "usebackq tokens=1" %%a in (`findstr /C:"<WindowsTargetPlatformVersion>10." "%_BUILD_PROJECT_DIR%BuildROMs.vcxproj"`) do set _X_PROJS_CONVERTED=%%a
|
||||
if not "%_X_PROJS_CONVERTED%" == "" goto _RunBuild
|
||||
echo Converting the VS2022 projects to generate XP compatible binaries
|
||||
Powershell -NoLogo -File "%~dp0\Visual Studio Projects\ConvertToXPProject.ps1" "%~dp0\Visual Studio Projects\*.vcxproj"
|
||||
echo v141 Convert starting at %TIME%
|
||||
echo Converting the VS2022 or VS2026 projects to used the 2017 support libraries
|
||||
Powershell -NoLogo -File "%~dp0\Visual Studio Projects\ConvertToV141Project.ps1" "%_SLN_FILE%"
|
||||
echo v141 Convert completed at %TIME%
|
||||
set _X_PROJS_CONVERTED=
|
||||
|
||||
:_RunBuild
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user