Skip to content

Commit 752c2e6

Browse files
committed
Enable build on hosted arm64 (dotnet#40311)
Initialize HostArch to the arch-style used in RIDs directly. Unless running in Visual Studio, when it should be forced to x64. Initialize ArchGroup to HostArch unless overriden. Use the HostArch for the tool runtime instead of assuming x64.
1 parent 2fac89f commit 752c2e6

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Directory.Build.props

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,10 @@
6464
<TargetGroup Condition="'$(TargetGroup)' == ''">netcoreapp</TargetGroup>
6565
<OSGroup Condition="'$(OSGroup)' == ''">$(DefaultOSGroup)</OSGroup>
6666
<ConfigurationGroup Condition="'$(ConfigurationGroup)' == ''">Debug</ConfigurationGroup>
67-
<HostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture)</HostArch>
68-
<ArchGroup Condition="'$(ArchGroup)' == '' AND '$(HostArch)' == 'Arm'">arm</ArchGroup>
69-
<ArchGroup Condition="'$(ArchGroup)' == '' AND '$(HostArch)' == 'Arm64'">arm64</ArchGroup>
70-
<ArchGroup Condition="'$(ArchGroup)' == ''">x64</ArchGroup>
67+
<HostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</HostArch>
68+
<!-- MSBuild inside Visual Studio is always x86. Force it to x64. -->
69+
<HostArch Condition="'$(BuildingInsideVisualStudio)' == 'true'">x64</HostArch>
70+
<ArchGroup Condition="'$(ArchGroup)' == ''">$(HostArch)</ArchGroup>
7171

7272
<!-- Initialize BuildConfiguration from the individual properties if it wasn't already explicitly set -->
7373
<BuildConfiguration Condition="'$(BuildConfiguration)' == ''">$(TargetGroup)-$(OSGroup)-$(ConfigurationGroup)-$(ArchGroup)</BuildConfiguration>
@@ -135,9 +135,9 @@
135135
<_runtimeOS Condition="'$(_runtimeOS)' == 'tizen.4.0.0'">linux</_runtimeOS>
136136
<_runtimeOS Condition="'$(_runtimeOS)' == 'tizen.5.0.0'">linux</_runtimeOS>
137137
<_runtimeOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS)</_runtimeOS>
138-
<ToolRuntimeRID>$(_runtimeOS)-x64</ToolRuntimeRID>
138+
<ToolRuntimeRID>$(_runtimeOS)-$(HostArch)</ToolRuntimeRID>
139139
<!-- We build linux-musl-arm on a ubuntu container, so we can't use the toolset build for alpine runtime. We need to use portable linux RID for our toolset in order to be able to use it. -->
140-
<ToolRuntimeRID Condition="'$(_runtimeOS)' == 'linux-musl' AND $(ArchGroup.StartsWith('arm')) AND !$(HostArch.StartsWith('Arm'))">linux-x64</ToolRuntimeRID>
140+
<ToolRuntimeRID Condition="'$(_runtimeOS)' == 'linux-musl' AND $(ArchGroup.StartsWith('arm')) AND !$(HostArch.StartsWith('arm'))">linux-x64</ToolRuntimeRID>
141141

142142
<!-- There are no WebAssembly tools, so treat them as Windows -->
143143
<ToolRuntimeRID Condition="'$(RuntimeOS)' == 'WebAssembly'">win-x64</ToolRuntimeRID>

0 commit comments

Comments
 (0)