Merge pull request #11813 from sfoslund/MacInstallersChoice
Add x64 emulation support to pkg installers
This commit is contained in:
commit
a9c86cb905
2 changed files with 107 additions and 1 deletions
|
@ -14,6 +14,7 @@
|
||||||
<SdkProductArchiveId>com.microsoft.dotnet.dev.$(Version).osx.$(Architecture)</SdkProductArchiveId>
|
<SdkProductArchiveId>com.microsoft.dotnet.dev.$(Version).osx.$(Architecture)</SdkProductArchiveId>
|
||||||
|
|
||||||
<PkgInstallDirectory>/usr/local/share/dotnet</PkgInstallDirectory>
|
<PkgInstallDirectory>/usr/local/share/dotnet</PkgInstallDirectory>
|
||||||
|
<x64EmulationPkgInstallDirectory>/usr/local/share/dotnet/x64</x64EmulationPkgInstallDirectory>
|
||||||
|
|
||||||
<SdkPkgSourcesRootDirectory>$(MSBuildThisFileDirectory)packaging/osx/clisdk</SdkPkgSourcesRootDirectory>
|
<SdkPkgSourcesRootDirectory>$(MSBuildThisFileDirectory)packaging/osx/clisdk</SdkPkgSourcesRootDirectory>
|
||||||
<SdkPkgScriptsDirectory>$(SdkPkgSourcesRootDirectory)/scripts</SdkPkgScriptsDirectory>
|
<SdkPkgScriptsDirectory>$(SdkPkgSourcesRootDirectory)/scripts</SdkPkgScriptsDirectory>
|
||||||
|
@ -22,7 +23,8 @@
|
||||||
<SdkPkgScriptFile>$(SdkPkgDestinationScriptsDirectory)/postinstall</SdkPkgScriptFile>
|
<SdkPkgScriptFile>$(SdkPkgDestinationScriptsDirectory)/postinstall</SdkPkgScriptFile>
|
||||||
<SdkProductArchiveResourcesDirectory>$(PkgIntermediateDirectory)/resources</SdkProductArchiveResourcesDirectory>
|
<SdkProductArchiveResourcesDirectory>$(PkgIntermediateDirectory)/resources</SdkProductArchiveResourcesDirectory>
|
||||||
|
|
||||||
<SdkProductArchiveDistributionTemplateFile>$(SdkPkgSourcesRootDirectory)/Distribution-Template</SdkProductArchiveDistributionTemplateFile>
|
<SdkProductArchiveDistributionTemplateFile Condition="'$(Architecture)' != 'x64'">$(SdkPkgSourcesRootDirectory)/Distribution-Template</SdkProductArchiveDistributionTemplateFile>
|
||||||
|
<SdkProductArchiveDistributionTemplateFile Condition="'$(Architecture)' == 'x64'">$(SdkPkgSourcesRootDirectory)/Distribution-Template-x64</SdkProductArchiveDistributionTemplateFile>
|
||||||
<SdkProductArchiveDistributionFile>$(PkgIntermediateDirectory)/CLI-SDK-Formatted-Distribution-Template.xml</SdkProductArchiveDistributionFile>
|
<SdkProductArchiveDistributionFile>$(PkgIntermediateDirectory)/CLI-SDK-Formatted-Distribution-Template.xml</SdkProductArchiveDistributionFile>
|
||||||
|
|
||||||
<SdkPkgIntermediatePath>$(PkgIntermediateDirectory)/$(SdkComponentId).pkg</SdkPkgIntermediatePath>
|
<SdkPkgIntermediatePath>$(PkgIntermediateDirectory)/$(SdkComponentId).pkg</SdkPkgIntermediatePath>
|
||||||
|
@ -96,6 +98,9 @@
|
||||||
<ReplacementString>10.13</ReplacementString>
|
<ReplacementString>10.13</ReplacementString>
|
||||||
<ReplacementString Condition="'$(Architecture)' == 'arm64'" >11.0</ReplacementString>
|
<ReplacementString Condition="'$(Architecture)' == 'arm64'" >11.0</ReplacementString>
|
||||||
</DistributionTemplateReplacement>
|
</DistributionTemplateReplacement>
|
||||||
|
<DistributionTemplateReplacement Include="{x64EmulationPkgInstallDirectory}">
|
||||||
|
<ReplacementString>$(x64EmulationPkgInstallDirectory)</ReplacementString>
|
||||||
|
</DistributionTemplateReplacement>
|
||||||
|
|
||||||
<PostInstallScriptReplacement Include="%SDK_VERSION%">
|
<PostInstallScriptReplacement Include="%SDK_VERSION%">
|
||||||
<ReplacementString>$(Version)</ReplacementString>
|
<ReplacementString>$(Version)</ReplacementString>
|
||||||
|
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<installer-gui-script minSpecVersion="1">
|
||||||
|
<title>{CLISdkBrandName} ({arch})</title>
|
||||||
|
<background file="dotnetbackground.png" mime-type="image/png"/>
|
||||||
|
<options customize="never" require-scripts="false" hostArchitectures="{hostArchitectures}" />
|
||||||
|
<welcome file="welcome.html" mime-type="text/html" />
|
||||||
|
<conclusion file="conclusion.html" mime-type="text/html" />
|
||||||
|
<volume-check>
|
||||||
|
<allowed-os-versions>
|
||||||
|
<os-version min="{minOsVersion}" />
|
||||||
|
</allowed-os-versions>
|
||||||
|
</volume-check>
|
||||||
|
<choices-outline>
|
||||||
|
<line choice="{NetCoreAppTargetingPackComponentId}.pkg.x64" />
|
||||||
|
<line choice="{NetStandardTargetingPackComponentId}.pkg.x64" />
|
||||||
|
<line choice="{NetCoreAppHostPackComponentId}.pkg.x64" />
|
||||||
|
<line choice="{SharedFxComponentId}.pkg.x64" />
|
||||||
|
<line choice="{HostFxrComponentId}.pkg.x64" />
|
||||||
|
<line choice="{SharedHostComponentId}.pkg.x64" />
|
||||||
|
<line choice="{CLISdkComponentId}.pkg.x64"/>
|
||||||
|
<line choice="{NetCoreAppTargetingPackComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{NetStandardTargetingPackComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{NetCoreAppHostPackComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{SharedFxComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{HostFxrComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{SharedHostComponentId}.pkg.arm64" />
|
||||||
|
<line choice="{CLISdkComponentId}.pkg.arm64"/>
|
||||||
|
</choices-outline>
|
||||||
|
<choice id="{NetCoreAppTargetingPackComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{NetCoreAppTargetingPackBrandName} ({arch})" description="The .NET Targeting Pack">
|
||||||
|
<pkg-ref id="{NetCoreAppTargetingPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{NetStandardTargetingPackComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{NetStandardTargetingPackBrandName} ({arch})" description="The .NET Standard 2.1 Targeting Pack">
|
||||||
|
<pkg-ref id="{NetStandardTargetingPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{NetCoreAppHostPackComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{NetCoreAppHostPackBrandName} ({arch})" description="The .NET App Host Pack">
|
||||||
|
<pkg-ref id="{NetCoreAppHostPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{SharedFxComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{SharedFxBrandName} ({arch})" description="The .NET Shared Framework">
|
||||||
|
<pkg-ref id="{SharedFxComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{HostFxrComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{HostFxrBrandName} ({arch})" description="The .NET Host FX Resolver">
|
||||||
|
<pkg-ref id="{HostFxrComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{SharedHostComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{SharedHostBrandName} ({arch})" description="The .NET Shared Host.">
|
||||||
|
<pkg-ref id="{SharedHostComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{CLISdkComponentId}.pkg.x64" visible="true" selected="IsX64Machine()" title="{CLISdkBrandName} ({arch})" description="The .NET SDK">
|
||||||
|
<pkg-ref id="{CLISdkComponentId}.pkg"/>
|
||||||
|
</choice>
|
||||||
|
<choice id="{NetCoreAppTargetingPackComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{NetCoreAppTargetingPackBrandName} ({arch})" description="The .NET Targeting Pack">
|
||||||
|
<pkg-ref id="{NetCoreAppTargetingPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{NetStandardTargetingPackComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{NetStandardTargetingPackBrandName} ({arch})" description="The .NET Standard 2.1 Targeting Pack">
|
||||||
|
<pkg-ref id="{NetStandardTargetingPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{NetCoreAppHostPackComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{NetCoreAppHostPackBrandName} ({arch})" description="The .NET App Host Pack">
|
||||||
|
<pkg-ref id="{NetCoreAppHostPackComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{SharedFxComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{SharedFxBrandName} ({arch})" description="The .NET Shared Framework">
|
||||||
|
<pkg-ref id="{SharedFxComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{HostFxrComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{HostFxrBrandName} ({arch})" description="The .NET Host FX Resolver">
|
||||||
|
<pkg-ref id="{HostFxrComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{SharedHostComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{SharedHostBrandName} ({arch})" description="The .NET Shared Host.">
|
||||||
|
<pkg-ref id="{SharedHostComponentId}.pkg" />
|
||||||
|
</choice>
|
||||||
|
<choice id="{CLISdkComponentId}.pkg.arm64" visible="true" selected="!IsX64Machine()" customLocation="{x64EmulationPkgInstallDirectory}" title="{CLISdkBrandName} ({arch})" description="The .NET SDK">
|
||||||
|
<pkg-ref id="{CLISdkComponentId}.pkg"/>
|
||||||
|
</choice>
|
||||||
|
<pkg-ref id="{NetCoreAppTargetingPackComponentId}.pkg">{NetCoreAppTargetingPackComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{NetStandardTargetingPackComponentId}.pkg">{NetStandardTargetingPackComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{NetCoreAppHostPackComponentId}.pkg">{NetCoreAppHostPackComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{SharedFxComponentId}.pkg">{SharedFxComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{HostFxrComponentId}.pkg">{HostFxrComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{SharedHostComponentId}.pkg">{SharedHostComponentId}.pkg</pkg-ref>
|
||||||
|
<pkg-ref id="{CLISdkComponentId}.pkg">{CLISdkComponentId}.pkg</pkg-ref>
|
||||||
|
<script>
|
||||||
|
<![CDATA[
|
||||||
|
function IsX64Machine() {
|
||||||
|
var machine = system.sysctl("hw.machine");
|
||||||
|
var cputype = system.sysctl("hw.cputype");
|
||||||
|
var cpu64 = system.sysctl("hw.cpu64bit_capable");
|
||||||
|
var translated = system.sysctl("sysctl.proc_translated");
|
||||||
|
system.log("Machine type: " + machine);
|
||||||
|
system.log("Cpu type: " + cputype);
|
||||||
|
system.log("64-bit: " + cpu64);
|
||||||
|
system.log("Translated: " + translated);
|
||||||
|
|
||||||
|
// From machine.h
|
||||||
|
// CPU_TYPE_X86_64 = CPU_TYPE_X86 | CPU_ARCH_ABI64 = 0x010000007 = 16777223
|
||||||
|
// CPU_TYPE_X86 = 7
|
||||||
|
var result = machine == "amd64" || machine == "x86_64" || cputype == "16777223" || (cputype == "7" && cpu64 == "1");
|
||||||
|
// We may be running under translation (Rosetta) that makes it seem like system is x64, if so assume machine is not actually x64
|
||||||
|
result = result && (translated != "1");
|
||||||
|
system.log("IsX64Machine: " + result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
]]>
|
||||||
|
</script>
|
||||||
|
</installer-gui-script>
|
Loading…
Reference in a new issue