Skip to content

Commit 891ff91

Browse files
Publish dotnet/runtime using standard Arcade Publish tooling (#111934)
* Remove prepare-signed-artifacts and publish from each leg directly. * Publish in a separate stage to make dependency tracking easy * Set _SignType so we can pass -sign * Remove old validation target * !drop remove -sign so we can figure out publishing first * Remove InitialTargets * Only generate product version files once. Fix asset manifest extension. Don't copy workloads packages as they're already in the right format now. * Completely restructure how we publish to be more explicit that specific jobs publish specific packages * Move "non-RID-specific" special packages logic into Publishing.props * Make sure we build the list of skipped packages after we add the RID-specific packages * Arcade now handles TargetOS/TargetArchitecture for asset manifest names. Use that when possible for unique names and produce our own names when necessary. * Extract handling hostOS and hostArch into another props file * Fix import and adjust condition for SB * Fix asset manifest name uniqueness to ensue we don't overwrite asset manifests. * Set AssetManifestFilePath again * Fix PublishAllPackages condition and make sure to publish the VS redist packages * Explicitly look up packages as we add zips and other blob artifacts to the Artifacts items in Signing.props * Search in the right folder. * Look up zips in VSSetup for workloads * Add missing semicolon * Include VSSetup artifacts separately * Re-enable signing (depends on Microbuild signing on Linux/Mac) * PR feedback * Specify Apple file signing info on macOS and simplify the macOS jobs in the official build. * In a VMR-style build, produce the product version file in either the win-x64 leg (for UB) or in all legs (for SB) * Change where we set PublishAllPackages to make things automatically work when this change flows to the VMR. * Update eng/Publishing.props Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com> * Change the control property to be EnableDefaultArtifacts and Include instead of Update for these scenarios. * Avoid global-property confusion within the VMR scenarios * Collapse more jobs together in the YAML * Remove unused items * Move logic into Signing.props. This solves problems around specifying EnableDefaultArtifacts=false in some VMR legs * Only publish the LLVM runtime packs from LLVM legs * Add the package artifacts to the right item group * Fix package name format * Fix handling host-targeting assets as NETCoreSdkRuntimeIdentifier is not available. * Item updates for default artifacts must happen in Publishing.props * Use Arcade's RID-specific publish feature in dotnet/runtime * Fix dependencies * Update host asset publishing * Set TargetRid * Adjust for Azure Linux package names and use artifact kinds * Restore a final join job for signing so we can merge this in and stop having to update the patch. * Remove unused parameter * The build stage shouldn't be a list * Add variable for artifact name * Try another variant * Try to simplify * Another try * Add the target path * Define the artifact name like how we define the build job names for simplicity * Make some items a list * Rewrite how we insert the "other" stages * Remove duplicate pool * Fix stage name * Fix conditions * Fix expected pipeline artifact names * Always put a templateContext into global-build-job even if one isn't provided * Fix typo and adjust publishing to handle PDBs * Set blob artifact kind * Fix item name for AzureLinux RPM signing * Put the VSSetup blobs in the VSSetup folder and adjust the relative blob paths to make that work * Fix crossdac and workloads downloads * inputs happen before clone. Don't download into the sources directory * Fix paths * Skip extracting packages that don't match so we can see the whole list. * Add arm32 downloads for crossdac * Publish crossos dac packages * Don't use RID-specific artifacts for the cross-dac build * Fix source-build and deps * Fix join-job signing * Add back split macos job to the official build. These files need to be signed coming out of runtime and otherwise we'd miss signing them * Remove duplicate jobs * Adjust commands for macos split job * Use the right property for the signing items base directory * Update Signing.props Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com> * Remove duplicate signing inputs --------- Co-authored-by: Viktor Hofer <viktor.hofer@microsoft.com>
1 parent 496824c commit 891ff91

15 files changed

+639
-656
lines changed

Directory.Build.props

Lines changed: 3 additions & 131 deletions
Original file line numberDiff line numberDiff line change
@@ -17,39 +17,8 @@
1717
<ShouldUnsetParentConfigurationAndPlatform>false</ShouldUnsetParentConfigurationAndPlatform>
1818
</PropertyGroup>
1919

20-
<PropertyGroup Label="CalculateTargetOS">
21-
<_hostOS>linux</_hostOS>
22-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</_hostOS>
23-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</_hostOS>
24-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
25-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
26-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
27-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
28-
<_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
29-
<HostOS>$(_hostOS)</HostOS>
30-
<TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
31-
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS>
32-
<TargetsMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'android' or '$(TargetOS)' == 'browser' or '$(TargetOS)' == 'wasi'">true</TargetsMobile>
33-
<TargetsAppleMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetsAppleMobile>
34-
</PropertyGroup>
35-
36-
<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
37-
<PropertyGroup Label="CalculateArch">
38-
<_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</_hostArch>
39-
<BuildArchitecture Condition="'$(BuildArchitecture)' == ''">$(_hostArch)</BuildArchitecture>
40-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'browser' or '$(RuntimeIdentifier)' == 'browser-wasm')">wasm</TargetArchitecture>
41-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'wasi' or '$(RuntimeIdentifier)' == 'wasi-wasm')">wasm</TargetArchitecture>
42-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
43-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armv6'">armv6</TargetArchitecture>
44-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
45-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
46-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
47-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
48-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'ppc64le'">ppc64le</TargetArchitecture>
49-
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
50-
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
51-
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
52-
</PropertyGroup>
20+
<!-- We don't have RepoRoot or RepositoryEngineeringDir available at this point -->
21+
<Import Project="$(MSBuildThisFileDirectory)/eng/OSArch.props" />
5322

5423
<PropertyGroup Label="SetOSTargetMinVersions">
5524
<!--
@@ -197,104 +166,7 @@
197166
<MonoCrossAOTTargetOS Condition="'$(TargetOS)' == 'osx'">$(MonoCrossAOTTargetOS)+tvos+ios+maccatalyst</MonoCrossAOTTargetOS>
198167
</PropertyGroup>
199168

200-
<PropertyGroup Label="CalculatePortableBuild">
201-
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true'">false</PortableBuild>
202-
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
203-
</PropertyGroup>
204-
205-
<!-- _portableOS is the portable rid-OS corresponding to the target platform. -->
206-
<PropertyGroup Label="CalculatePortableOS">
207-
<!-- To determine _portableOS we use TargetOS.
208-
TargetOS is not a rid-OS. For example: for Windows it is 'windows' instead of 'win'.
209-
And, for flavors of Linux, like 'linux-musl' and 'linux-bionic', TargetOS is 'linux'. -->
210-
211-
<_portableOS>$(TargetOS.ToLowerInvariant())</_portableOS>
212-
<_portableOS Condition="'$(_portableOS)' == 'windows'">win</_portableOS>
213-
214-
<!-- TargetOS=AnyOS is a sentinel value used by tests, ignore it. -->
215-
<_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS)</_portableOS>
216-
217-
<!-- Detect linux flavors using __PortableTargetOS from the native script. -->
218-
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl</_portableOS>
219-
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic</_portableOS>
220-
221-
<!-- On Windows, we can build for Windows and Mobile.
222-
For other TargetOSes, create a "win" build, built from TargetOS sources and "win" pre-built packages. -->
223-
<_portableOS Condition="'$(HostOS)' == 'win' and '$(TargetsMobile)' != 'true'">win</_portableOS>
224-
</PropertyGroup>
225-
226-
<!-- PackageRID is used for packages needed for the target. -->
227-
<PropertyGroup Label="CalculatePackageRID">
228-
<_packageOS>$(_portableOS)</_packageOS>
229-
230-
<_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic' and '$(_portableOS)' != 'android'">$(_hostOS)</_packageOS>
231-
232-
<!-- source-build sets PackageOS to build with non-portable rid packages that were source-built previously. -->
233-
<PackageRID Condition="'$(PackageOS)' != ''">$(PackageOS)-$(TargetArchitecture)</PackageRID>
234-
<PackageRID Condition="'$(PackageRID)' == ''">$(_packageOS)-$(TargetArchitecture)</PackageRID>
235-
</PropertyGroup>
236-
237-
<!-- ToolsRID is used for packages needed on the build host. -->
238-
<PropertyGroup Label="CalculateToolsRID">
239-
<!-- _portableHostOS is the portable rid-OS corresponding to the build host platform.
240-
241-
To determine _portableHostOS we use _hostOS, similar to how _portableOS is calculated from TargetOS.
242-
243-
When we're not cross-building we can detect linux flavors by looking at _portableOS
244-
because the target platform and the build host platform are the same.
245-
For cross-builds, we're currently unable to detect the flavors. -->
246-
<_portableHostOS>$(_hostOS)</_portableHostOS>
247-
<_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win</_portableHostOS>
248-
<_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl</_portableHostOS>
249-
250-
<!-- source-build sets ToolsOS to build with non-portable rid packages that were source-built previously. -->
251-
<ToolsRID Condition="'$(ToolsOS)' != ''">$(ToolsOS)-$(_hostArch)</ToolsRID>
252-
<ToolsRID Condition="'$(ToolsRID)' == ''">$(_portableHostOS)-$(_hostArch)</ToolsRID>
253-
254-
<!-- Microsoft.NET.Sdk.IL SDK defaults to the portable host rid. Match it to ToolsRID (for source-build). -->
255-
<MicrosoftNetCoreIlasmPackageRuntimeId>$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
256-
</PropertyGroup>
257-
258-
<!-- OutputRID is used to name the target platform.
259-
For portable builds, OutputRID matches _portableOS.
260-
For non-portable builds, it uses __DistroRid (from the native build script), or falls back to RuntimeInformation.RuntimeIdentifier.
261-
Source-build sets OutputRID directly. -->
262-
<PropertyGroup Label="CalculateOutputRID">
263-
<_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</_hostRid>
264-
<_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</_hostRid>
265-
266-
<_parseDistroRid>$(__DistroRid)</_parseDistroRid>
267-
<_parseDistroRid Condition="'$(_parseDistroRid)' == ''">$(_hostRid)</_parseDistroRid>
268-
<_distroRidIndex>$(_parseDistroRid.LastIndexOf('-'))</_distroRidIndex>
269-
270-
<_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex)))</_outputOS>
271-
<_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS)</_outputOS>
272-
273-
<OutputRID Condition="'$(OutputRID)' == ''">$(_outputOS)-$(TargetArchitecture)</OutputRID>
274-
</PropertyGroup>
275-
276-
<PropertyGroup Label="CalculateTargetOSName">
277-
<TargetsFreeBSD Condition="'$(TargetOS)' == 'freebsd'">true</TargetsFreeBSD>
278-
<Targetsillumos Condition="'$(TargetOS)' == 'illumos'">true</Targetsillumos>
279-
<TargetsSolaris Condition="'$(TargetOS)' == 'solaris'">true</TargetsSolaris>
280-
<TargetsHaiku Condition="'$(TargetOS)' == 'haiku'">true</TargetsHaiku>
281-
<TargetsLinux Condition="'$(TargetOS)' == 'linux' or '$(TargetOS)' == 'android'">true</TargetsLinux>
282-
<TargetsLinuxBionic Condition="'$(_portableOS)' == 'linux-bionic'">true</TargetsLinuxBionic>
283-
<TargetsLinuxMusl Condition="'$(_portableOS)' == 'linux-musl'">true</TargetsLinuxMusl>
284-
<TargetsLinuxGlibc Condition="'$(TargetsLinux)' == 'true' and '$(TargetsLinuxMusl)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">true</TargetsLinuxGlibc>
285-
<TargetsNetBSD Condition="'$(TargetOS)' == 'netbsd'">true</TargetsNetBSD>
286-
<TargetsOSX Condition="'$(TargetOS)' == 'osx'">true</TargetsOSX>
287-
<TargetsMacCatalyst Condition="'$(TargetOS)' == 'maccatalyst'">true</TargetsMacCatalyst>
288-
<TargetsiOS Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator'">true</TargetsiOS>
289-
<TargetstvOS Condition="'$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetstvOS>
290-
<TargetsiOSSimulator Condition="'$(TargetOS)' == 'iossimulator'">true</TargetsiOSSimulator>
291-
<TargetstvOSSimulator Condition="'$(TargetOS)' == 'tvossimulator'">true</TargetstvOSSimulator>
292-
<TargetsAndroid Condition="'$(TargetOS)' == 'android'">true</TargetsAndroid>
293-
<TargetsBrowser Condition="'$(TargetOS)' == 'browser'">true</TargetsBrowser>
294-
<TargetsWasi Condition="'$(TargetOS)' == 'wasi'">true</TargetsWasi>
295-
<TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
296-
<TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsHaiku)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsMacCatalyst)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
297-
</PropertyGroup>
169+
<Import Project="$(RepositoryEngineeringDir)RuntimeIdentifier.props" />
298170

299171
<PropertyGroup>
300172
<MicrosoftNetCoreAppRefPackDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.ref'))</MicrosoftNetCoreAppRefPackDir>

eng/DotNetBuild.props

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,19 @@
3838
<ShortStack Condition="'$(DotNetBuildMonoEnableLLVM)' == 'true' or '$(DotNetBuildMonoAOTEnableLLVM)' == 'true'">true</ShortStack>
3939
</PropertyGroup>
4040

41+
<!--
42+
Allow the VMR orchestrator to control whether or not to build rid-specific artifacts,
43+
but provide defaults until the VMR orchestrator provides controls in all scenarios.
44+
-->
45+
<PropertyGroup Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">
46+
<!-- Source-build always needs all artifacts to be published. -->
47+
<EnableDefaultRidSpecificArtifacts Condition="'$(DotNetBuildSourceOnly)' != ''">false</EnableDefaultRidSpecificArtifacts>
48+
<!-- Short-stack builds should always only publish RID-specific artifacts. -->
49+
<EnableDefaultRidSpecificArtifacts Condition="'$(ShortStack)' == 'true'">true</EnableDefaultRidSpecificArtifacts>
50+
<!-- If no override is specified, don't use RID-specific publishing. Instead, publish everything. -->
51+
<EnableDefaultRidSpecificArtifacts Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">false</EnableDefaultRidSpecificArtifacts>
52+
</PropertyGroup>
53+
4154
<Target Name="GetRuntimeSourceBuildCommandConfiguration"
4255
BeforeTargets="GetSourceBuildCommandConfiguration">
4356
<PropertyGroup>
@@ -107,6 +120,8 @@
107120

108121
<!-- Needed until https://github.com/dotnet/runtime/issues/109329 is fixed. -->
109122
<InnerBuildArgs Condition="'$(NetCoreAppToolCurrentVersion)' != ''">$(InnerBuildArgs) /p:NetCoreAppToolCurrentVersion=$(NetCoreAppToolCurrentVersion)</InnerBuildArgs>
123+
124+
<InnerBuildArgs Condition="'$(EnableDefaultRidSpecificArtifacts)' != ''">$(InnerBuildArgs) /p:EnableDefaultRidSpecificArtifacts=$(EnableDefaultRidSpecificArtifacts)</InnerBuildArgs>
110125
</PropertyGroup>
111126
</Target>
112127

eng/OSArch.props

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<Project>
2+
<PropertyGroup Label="CalculateTargetOS">
3+
<_hostOS>linux</_hostOS>
4+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</_hostOS>
5+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</_hostOS>
6+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
7+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
8+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
9+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
10+
<_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
11+
<HostOS>$(_hostOS)</HostOS>
12+
<TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
13+
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS>
14+
<TargetsMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator' or '$(TargetOS)' == 'android' or '$(TargetOS)' == 'browser' or '$(TargetOS)' == 'wasi'">true</TargetsMobile>
15+
<TargetsAppleMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetsAppleMobile>
16+
</PropertyGroup>
17+
18+
<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
19+
<PropertyGroup Label="CalculateArch">
20+
<_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</_hostArch>
21+
<BuildArchitecture Condition="'$(BuildArchitecture)' == ''">$(_hostArch)</BuildArchitecture>
22+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'browser' or '$(RuntimeIdentifier)' == 'browser-wasm')">wasm</TargetArchitecture>
23+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'wasi' or '$(RuntimeIdentifier)' == 'wasi-wasm')">wasm</TargetArchitecture>
24+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
25+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armv6'">armv6</TargetArchitecture>
26+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
27+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
28+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
29+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
30+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'ppc64le'">ppc64le</TargetArchitecture>
31+
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
32+
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
33+
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
34+
</PropertyGroup>
35+
</Project>

0 commit comments

Comments
 (0)