Windows 10 SDK build fixes

Build without Win32.mak, and using Universal C Runtime (UCRT)

windows: Check for APPVER, not VCVER for UCRT

When deciding whether UCRT is used (and thus no CRT merge modules), check for
Windows 10 rather than the version of Visual Studio, as we may be building with
an older SDK.
This commit is contained in:
Luke Howard
2021-08-11 18:53:36 +10:00
committed by Nico Williams
parent 7cc4b7a9e6
commit ec866e635e
9 changed files with 191 additions and 28 deletions

View File

@@ -133,7 +133,13 @@ clean::
######################################################################
# Runtime modules
!if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
!if [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==19
VCVER=VC2019
!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==18
VCVER=VC2018
!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==17
VCVER=VC2017
!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==16
VCVER=VC100
!elseif [ $(PERL) $(SRC)\cf\w32-detect-vc-version.pl $(CC) ]==15
VCVER=VC90
@@ -164,22 +170,27 @@ MMDIR=$(SystemDrive)\Program Files (x86)\Common Files\Merge Modules
!endif
!endif
!if exist("$(MMDIR)")
#
# Don't specify a runtime module when the Universal C Runtime
# is available.
#
!if "$(APPVER)"=="10.0"
RUNTIMEMODULE32=""
RUNTIMEMODULE64=""
!else
! if exist("$(MMDIR)")
RUNTIMEMODULE32="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86.msm"
!if "$(VCVER)"=="VC100"
RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
!else
! if "$(VCVER)"=="VC90" || "$(VCVER)"=="VC80"
RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x86_x64.msm"
!endif
!else
! else
RUNTIMEMODULE64="$(MMDIR)\Microsoft_$(VCVER)_$(CRTNAME)_x64.msm"
! endif
! else
RUNTIMEMODULE32="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x86_msm.msm"
RUNTIMEMODULE64="$(MSSDK)\Redist\VC\microsoft.vcxx.crt.x64_msm.msm"
! endif
!endif
######################################################################
# Heimdal installer

View File

@@ -99,9 +99,10 @@
<Merge Id='Heimdal.Policy.32' Language='0'
SourceFile='$(var.InstDir32)\Heimdal.Policy.msm' />
<Merge Id='Runtime.32' Language='0'
SourceFile='$(var.RuntimeModule32)' />
<?if "$(var.RuntimeModule32)" != "" ?>
<Merge Id='Runtime.32' Language='0'
SourceFile='$(var.RuntimeModule32)' />
<?endif?>
</DirectoryRef>
<?endif?>
@@ -127,9 +128,10 @@
<Merge Id='Heimdal.Policy.64' Language='0'
SourceFile='$(var.InstDir64)\Heimdal.Policy.msm' />
<Merge Id='Runtime.64' Language='0'
SourceFile='$(var.RuntimeModule64)' />
<?if "$(var.RuntimeModule64)" != "" ?>
<Merge Id='Runtime.64' Language='0'
SourceFile='$(var.RuntimeModule64)' />
<?endif?>
</DirectoryRef>
<?endif?>
@@ -370,12 +372,12 @@
<MergeRef Id='Heimdal.Assemblies.64' />
<MergeRef Id='Heimdal.GSS.64' />
<MergeRef Id='Heimdal.Policy.64' />
<MergeRef Id='Runtime.64' />
<?if "$(var.RuntimeModule64)" != "" ?><MergeRef Id='Runtime.64' /><?endif?>
<?else?>
<MergeRef Id='Heimdal.Assemblies.32' />
<MergeRef Id='Heimdal.GSS.32' />
<MergeRef Id='Heimdal.Policy.32' />
<MergeRef Id='Runtime.32' />
<?if "$(var.RuntimeModule32)" != "" ?><MergeRef Id='Runtime.32' /><?endif?>
<?endif?>
<?ifdef Target32?>
@@ -393,7 +395,7 @@
<MergeRef Id='Heimdal.Assemblies.32' />
<MergeRef Id='Heimdal.GSS.32' />
<MergeRef Id='Heimdal.Policy.32' />
<MergeRef Id='Runtime.32' />
<?if "$(var.RuntimeModule32)" != "" ?><MergeRef Id='Runtime.32' /><?endif?>
</Feature>
<?endif?>
<?endif?>