Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Publish dotnet/runtime using standard Arcade Publish tooling #111934

Merged
merged 84 commits into from
Mar 7, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
0364ee2
Remove prepare-signed-artifacts and publish from each leg directly.
jkoritzinsky Jan 21, 2025
7e284a4
Publish in a separate stage to make dependency tracking easy
jkoritzinsky Jan 21, 2025
d2c9cf8
Set _SignType so we can pass -sign
jkoritzinsky Jan 22, 2025
3338d4d
Remove old validation target
jkoritzinsky Jan 22, 2025
01bca60
!drop remove -sign so we can figure out publishing first
jkoritzinsky Jan 22, 2025
88ee36c
Remove InitialTargets
jkoritzinsky Jan 22, 2025
d2fa244
Only generate product version files once. Fix asset manifest extensio…
jkoritzinsky Jan 22, 2025
f93b7e4
Completely restructure how we publish to be more explicit that specif…
jkoritzinsky Jan 23, 2025
8ee9ac1
Move "non-RID-specific" special packages logic into Publishing.props
jkoritzinsky Jan 23, 2025
4455301
Make sure we build the list of skipped packages after we add the RID-…
jkoritzinsky Jan 23, 2025
e36e87e
Arcade now handles TargetOS/TargetArchitecture for asset manifest nam…
jkoritzinsky Jan 23, 2025
747bffe
Extract handling hostOS and hostArch into another props file
jkoritzinsky Jan 24, 2025
fbe3515
Fix import and adjust condition for SB
jkoritzinsky Jan 24, 2025
6bbbc4c
Fix asset manifest name uniqueness to ensue we don't overwrite asset …
jkoritzinsky Jan 24, 2025
c1068eb
Set AssetManifestFilePath again
jkoritzinsky Jan 24, 2025
9e61e42
Fix PublishAllPackages condition and make sure to publish the VS redi…
jkoritzinsky Jan 27, 2025
05fe23b
Explicitly look up packages as we add zips and other blob artifacts t…
jkoritzinsky Jan 27, 2025
d8b032a
Search in the right folder.
jkoritzinsky Jan 28, 2025
2ac88a1
Look up zips in VSSetup for workloads
jkoritzinsky Jan 28, 2025
552bb1d
Add missing semicolon
jkoritzinsky Jan 28, 2025
9247027
Include VSSetup artifacts separately
jkoritzinsky Jan 28, 2025
1eb6a85
Re-enable signing (depends on Microbuild signing on Linux/Mac)
jkoritzinsky Jan 28, 2025
72af6e0
Merge branch 'main' of github.com:dotnet/runtime into standard-arcade…
jkoritzinsky Jan 28, 2025
8ce2e09
PR feedback
jkoritzinsky Jan 29, 2025
40334a3
Specify Apple file signing info on macOS and simplify the macOS jobs …
jkoritzinsky Jan 29, 2025
220a7dc
In a VMR-style build, produce the product version file in either the …
jkoritzinsky Jan 30, 2025
210e527
Change where we set PublishAllPackages to make things automatically w…
jkoritzinsky Jan 31, 2025
19d97f8
Merge branch 'main' into standard-arcade-publish
jkoritzinsky Feb 1, 2025
aeb2f75
Update eng/Publishing.props
jkoritzinsky Feb 1, 2025
52c633b
Change the control property to be EnableDefaultArtifacts and Include …
jkoritzinsky Feb 3, 2025
e5541ce
Avoid global-property confusion within the VMR scenarios
jkoritzinsky Feb 3, 2025
266966f
Merge branch 'main' of https://github.com/dotnet/runtime into standar…
jkoritzinsky Feb 4, 2025
d8a44ba
Collapse more jobs together in the YAML
jkoritzinsky Feb 4, 2025
bc2a9bf
Remove unused items
jkoritzinsky Feb 4, 2025
6e03a6a
Move logic into Signing.props.
jkoritzinsky Feb 5, 2025
cbfbe4a
Only publish the LLVM runtime packs from LLVM legs
jkoritzinsky Feb 6, 2025
60b8af5
Add the package artifacts to the right item group
jkoritzinsky Feb 6, 2025
7b209dd
Fix package name format
jkoritzinsky Feb 6, 2025
ca33ca5
Fix handling host-targeting assets as NETCoreSdkRuntimeIdentifier is …
jkoritzinsky Feb 7, 2025
fa2e34f
Item updates for default artifacts must happen in Publishing.props
jkoritzinsky Feb 11, 2025
f9f7d21
Merge branch 'main' into standard-arcade-publish
jkoritzinsky Feb 24, 2025
89f3d0c
Merge branch 'main' of github.com:dotnet/runtime into standard-arcade…
jkoritzinsky Feb 26, 2025
9e43f5b
Use Arcade's RID-specific publish feature in dotnet/runtime
jkoritzinsky Feb 26, 2025
431a50f
Fix dependencies
jkoritzinsky Feb 26, 2025
7268ac4
Update host asset publishing
jkoritzinsky Feb 26, 2025
8f34d79
Set TargetRid
jkoritzinsky Feb 26, 2025
d5e6b66
Adjust for Azure Linux package names and use artifact kinds
jkoritzinsky Mar 3, 2025
57a7468
Merge branch 'main' of github.com:dotnet/runtime into standard-arcade…
jkoritzinsky Mar 3, 2025
429758d
Restore a final join job for signing so we can merge this in and stop…
jkoritzinsky Mar 3, 2025
fee4328
Remove unused parameter
jkoritzinsky Mar 3, 2025
4ccf449
The build stage shouldn't be a list
jkoritzinsky Mar 3, 2025
9f7682e
Add variable for artifact name
jkoritzinsky Mar 3, 2025
252e984
Try another variant
jkoritzinsky Mar 3, 2025
831c5ac
Try to simplify
jkoritzinsky Mar 3, 2025
081db0d
Another try
jkoritzinsky Mar 3, 2025
6d21984
Add the target path
jkoritzinsky Mar 3, 2025
12ae0fd
Define the artifact name like how we define the build job names for s…
jkoritzinsky Mar 3, 2025
61df0b7
Make some items a list
jkoritzinsky Mar 3, 2025
b4ade05
Rewrite how we insert the "other" stages
jkoritzinsky Mar 3, 2025
8bf1832
Remove duplicate pool
jkoritzinsky Mar 3, 2025
1a2a5b9
Fix stage name
jkoritzinsky Mar 3, 2025
acb8be4
Fix conditions
jkoritzinsky Mar 3, 2025
f014371
Fix expected pipeline artifact names
jkoritzinsky Mar 4, 2025
ef298be
Always put a templateContext into global-build-job even if one isn't …
jkoritzinsky Mar 4, 2025
5aa4ea7
Fix typo and adjust publishing to handle PDBs
jkoritzinsky Mar 4, 2025
9527b73
Set blob artifact kind
jkoritzinsky Mar 4, 2025
3a6a04f
Fix item name for AzureLinux RPM signing
jkoritzinsky Mar 4, 2025
3702f3c
Put the VSSetup blobs in the VSSetup folder and adjust the relative b…
jkoritzinsky Mar 4, 2025
5fe309f
Fix crossdac and workloads downloads
jkoritzinsky Mar 4, 2025
2343ebe
inputs happen before clone. Don't download into the sources directory
jkoritzinsky Mar 4, 2025
b08df1e
Fix paths
jkoritzinsky Mar 5, 2025
f37e6a5
Skip extracting packages that don't match so we can see the whole list.
jkoritzinsky Mar 5, 2025
d3b9cfd
Add arm32 downloads for crossdac
jkoritzinsky Mar 5, 2025
2c90296
Publish crossos dac packages
jkoritzinsky Mar 5, 2025
a0e9fe6
Don't use RID-specific artifacts for the cross-dac build
jkoritzinsky Mar 5, 2025
53c44db
Fix source-build and deps
jkoritzinsky Mar 6, 2025
0e820f4
Fix join-job signing
jkoritzinsky Mar 6, 2025
fbf49fc
Add back split macos job to the official build. These files need to b…
jkoritzinsky Mar 6, 2025
e91c434
Merge branch 'standard-arcade-publish' of https://dev.azure.com/dncen…
jkoritzinsky Mar 6, 2025
9557e70
Remove duplicate jobs
jkoritzinsky Mar 6, 2025
745a8a1
Adjust commands for macos split job
jkoritzinsky Mar 6, 2025
a314fc3
Use the right property for the signing items base directory
jkoritzinsky Mar 7, 2025
5312597
Update Signing.props
jkoritzinsky Mar 7, 2025
f93980b
Remove duplicate signing inputs
jkoritzinsky Mar 7, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
134 changes: 3 additions & 131 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,39 +17,8 @@
<ShouldUnsetParentConfigurationAndPlatform>false</ShouldUnsetParentConfigurationAndPlatform>
</PropertyGroup>

<PropertyGroup Label="CalculateTargetOS">
<_hostOS>linux</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
<HostOS>$(_hostOS)</HostOS>
<TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS>
<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>
<TargetsAppleMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetsAppleMobile>
</PropertyGroup>

<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
<PropertyGroup Label="CalculateArch">
<_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</_hostArch>
<BuildArchitecture Condition="'$(BuildArchitecture)' == ''">$(_hostArch)</BuildArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'browser' or '$(RuntimeIdentifier)' == 'browser-wasm')">wasm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'wasi' or '$(RuntimeIdentifier)' == 'wasi-wasm')">wasm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armv6'">armv6</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'ppc64le'">ppc64le</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
</PropertyGroup>
<!-- We don't have RepoRoot or RepositoryEngineeringDir available at this point -->
<Import Project="$(MSBuildThisFileDirectory)/eng/OSArch.props" />

<PropertyGroup Label="SetOSTargetMinVersions">
<!--
Expand Down Expand Up @@ -197,104 +166,7 @@
<MonoCrossAOTTargetOS Condition="'$(TargetOS)' == 'osx'">$(MonoCrossAOTTargetOS)+tvos+ios+maccatalyst</MonoCrossAOTTargetOS>
</PropertyGroup>

<PropertyGroup Label="CalculatePortableBuild">
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true'">false</PortableBuild>
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
</PropertyGroup>

<!-- _portableOS is the portable rid-OS corresponding to the target platform. -->
<PropertyGroup Label="CalculatePortableOS">
<!-- To determine _portableOS we use TargetOS.
TargetOS is not a rid-OS. For example: for Windows it is 'windows' instead of 'win'.
And, for flavors of Linux, like 'linux-musl' and 'linux-bionic', TargetOS is 'linux'. -->

<_portableOS>$(TargetOS.ToLowerInvariant())</_portableOS>
<_portableOS Condition="'$(_portableOS)' == 'windows'">win</_portableOS>

<!-- TargetOS=AnyOS is a sentinel value used by tests, ignore it. -->
<_portableOS Condition="'$(_portableOS)' == 'anyos'">$(__PortableTargetOS)</_portableOS>

<!-- Detect linux flavors using __PortableTargetOS from the native script. -->
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-musl'">linux-musl</_portableOS>
<_portableOS Condition="'$(_portableOS)' == 'linux' and '$(__PortableTargetOS)' == 'linux-bionic'">linux-bionic</_portableOS>

<!-- On Windows, we can build for Windows and Mobile.
For other TargetOSes, create a "win" build, built from TargetOS sources and "win" pre-built packages. -->
<_portableOS Condition="'$(HostOS)' == 'win' and '$(TargetsMobile)' != 'true'">win</_portableOS>
</PropertyGroup>

<!-- PackageRID is used for packages needed for the target. -->
<PropertyGroup Label="CalculatePackageRID">
<_packageOS>$(_portableOS)</_packageOS>

<_packageOS Condition="'$(CrossBuild)' == 'true' and '$(_portableOS)' != 'linux-musl' and '$(_portableOS)' != 'linux-bionic' and '$(_portableOS)' != 'android'">$(_hostOS)</_packageOS>

<!-- source-build sets PackageOS to build with non-portable rid packages that were source-built previously. -->
<PackageRID Condition="'$(PackageOS)' != ''">$(PackageOS)-$(TargetArchitecture)</PackageRID>
<PackageRID Condition="'$(PackageRID)' == ''">$(_packageOS)-$(TargetArchitecture)</PackageRID>
</PropertyGroup>

<!-- ToolsRID is used for packages needed on the build host. -->
<PropertyGroup Label="CalculateToolsRID">
<!-- _portableHostOS is the portable rid-OS corresponding to the build host platform.

To determine _portableHostOS we use _hostOS, similar to how _portableOS is calculated from TargetOS.

When we're not cross-building we can detect linux flavors by looking at _portableOS
because the target platform and the build host platform are the same.
For cross-builds, we're currently unable to detect the flavors. -->
<_portableHostOS>$(_hostOS)</_portableHostOS>
<_portableHostOS Condition="'$(_portableHostOS)' == 'windows'">win</_portableHostOS>
<_portableHostOS Condition="'$(CrossBuild)' != 'true' and '$(_portableOS)' == 'linux-musl'">linux-musl</_portableHostOS>

<!-- source-build sets ToolsOS to build with non-portable rid packages that were source-built previously. -->
<ToolsRID Condition="'$(ToolsOS)' != ''">$(ToolsOS)-$(_hostArch)</ToolsRID>
<ToolsRID Condition="'$(ToolsRID)' == ''">$(_portableHostOS)-$(_hostArch)</ToolsRID>

<!-- Microsoft.NET.Sdk.IL SDK defaults to the portable host rid. Match it to ToolsRID (for source-build). -->
<MicrosoftNetCoreIlasmPackageRuntimeId>$(ToolsRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
</PropertyGroup>

<!-- OutputRID is used to name the target platform.
For portable builds, OutputRID matches _portableOS.
For non-portable builds, it uses __DistroRid (from the native build script), or falls back to RuntimeInformation.RuntimeIdentifier.
Source-build sets OutputRID directly. -->
<PropertyGroup Label="CalculateOutputRID">
<_hostRid Condition="'$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</_hostRid>
<_hostRid Condition="'$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</_hostRid>

<_parseDistroRid>$(__DistroRid)</_parseDistroRid>
<_parseDistroRid Condition="'$(_parseDistroRid)' == ''">$(_hostRid)</_parseDistroRid>
<_distroRidIndex>$(_parseDistroRid.LastIndexOf('-'))</_distroRidIndex>

<_outputOS>$(_parseDistroRid.SubString(0, $(_distroRidIndex)))</_outputOS>
<_outputOS Condition="'$(PortableBuild)' == 'true'">$(_portableOS)</_outputOS>

<OutputRID Condition="'$(OutputRID)' == ''">$(_outputOS)-$(TargetArchitecture)</OutputRID>
</PropertyGroup>

<PropertyGroup Label="CalculateTargetOSName">
<TargetsFreeBSD Condition="'$(TargetOS)' == 'freebsd'">true</TargetsFreeBSD>
<Targetsillumos Condition="'$(TargetOS)' == 'illumos'">true</Targetsillumos>
<TargetsSolaris Condition="'$(TargetOS)' == 'solaris'">true</TargetsSolaris>
<TargetsHaiku Condition="'$(TargetOS)' == 'haiku'">true</TargetsHaiku>
<TargetsLinux Condition="'$(TargetOS)' == 'linux' or '$(TargetOS)' == 'android'">true</TargetsLinux>
<TargetsLinuxBionic Condition="'$(_portableOS)' == 'linux-bionic'">true</TargetsLinuxBionic>
<TargetsLinuxMusl Condition="'$(_portableOS)' == 'linux-musl'">true</TargetsLinuxMusl>
<TargetsLinuxGlibc Condition="'$(TargetsLinux)' == 'true' and '$(TargetsLinuxMusl)' != 'true' and '$(TargetsLinuxBionic)' != 'true'">true</TargetsLinuxGlibc>
<TargetsNetBSD Condition="'$(TargetOS)' == 'netbsd'">true</TargetsNetBSD>
<TargetsOSX Condition="'$(TargetOS)' == 'osx'">true</TargetsOSX>
<TargetsMacCatalyst Condition="'$(TargetOS)' == 'maccatalyst'">true</TargetsMacCatalyst>
<TargetsiOS Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator'">true</TargetsiOS>
<TargetstvOS Condition="'$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetstvOS>
<TargetsiOSSimulator Condition="'$(TargetOS)' == 'iossimulator'">true</TargetsiOSSimulator>
<TargetstvOSSimulator Condition="'$(TargetOS)' == 'tvossimulator'">true</TargetstvOSSimulator>
<TargetsAndroid Condition="'$(TargetOS)' == 'android'">true</TargetsAndroid>
<TargetsBrowser Condition="'$(TargetOS)' == 'browser'">true</TargetsBrowser>
<TargetsWasi Condition="'$(TargetOS)' == 'wasi'">true</TargetsWasi>
<TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
<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>
</PropertyGroup>
<Import Project="$(RepositoryEngineeringDir)RuntimeIdentifier.props" />

<PropertyGroup>
<MicrosoftNetCoreAppRefPackDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'microsoft.netcore.app.ref'))</MicrosoftNetCoreAppRefPackDir>
Expand Down
15 changes: 15 additions & 0 deletions eng/DotNetBuild.props
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,19 @@
<ShortStack Condition="'$(DotNetBuildMonoEnableLLVM)' == 'true' or '$(DotNetBuildMonoAOTEnableLLVM)' == 'true'">true</ShortStack>
</PropertyGroup>

<!--
Allow the VMR orchestrator to control whether or not to build rid-specific artifacts,
but provide defaults until the VMR orchestrator provides controls in all scenarios.
-->
<PropertyGroup Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">
<!-- Source-build always needs all artifacts to be published. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(DotNetBuildSourceOnly)' != ''">false</EnableDefaultRidSpecificArtifacts>
<!-- Short-stack builds should always only publish RID-specific artifacts. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(ShortStack)' == 'true'">true</EnableDefaultRidSpecificArtifacts>
<!-- If no override is specified, don't use RID-specific publishing. Instead, publish everything. -->
<EnableDefaultRidSpecificArtifacts Condition="'$(EnableDefaultRidSpecificArtifacts)' == ''">false</EnableDefaultRidSpecificArtifacts>
</PropertyGroup>
Comment on lines +45 to +52
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These settings make sense to me but wouldn't they better fit into the VMR orchestrator as they aren't specific to runtime?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, they do fit better in the VMR. However, we need to put them here first so they don't break the VMR until I change the VMR to pass these options down (also in PR)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once the VMR controls are in, I'll come back and remove these.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider filing a tracking issue and linking to it. Also, so that others can follow along and understand the potential for improvement in these code paths.


<Target Name="GetRuntimeSourceBuildCommandConfiguration"
BeforeTargets="GetSourceBuildCommandConfiguration">
<PropertyGroup>
Expand Down Expand Up @@ -107,6 +120,8 @@

<!-- Needed until https://github.com/dotnet/runtime/issues/109329 is fixed. -->
<InnerBuildArgs Condition="'$(NetCoreAppToolCurrentVersion)' != ''">$(InnerBuildArgs) /p:NetCoreAppToolCurrentVersion=$(NetCoreAppToolCurrentVersion)</InnerBuildArgs>

<InnerBuildArgs Condition="'$(EnableDefaultRidSpecificArtifacts)' != ''">$(InnerBuildArgs) /p:EnableDefaultRidSpecificArtifacts=$(EnableDefaultRidSpecificArtifacts)</InnerBuildArgs>
</PropertyGroup>
</Target>

Expand Down
35 changes: 35 additions & 0 deletions eng/OSArch.props
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
<Project>
<PropertyGroup Label="CalculateTargetOS">
<_hostOS>linux</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</_hostOS>
<_hostOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</_hostOS>
<HostOS>$(_hostOS)</HostOS>
<TargetOS Condition="'$(TargetOS)' == '' and '$(RuntimeIdentifier)' == 'browser-wasm'">browser</TargetOS>
<TargetOS Condition="'$(TargetOS)' == ''">$(_hostOS)</TargetOS>
<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>
<TargetsAppleMobile Condition="'$(TargetOS)' == 'ios' or '$(TargetOS)' == 'iossimulator' or '$(TargetOS)' == 'maccatalyst' or '$(TargetOS)' == 'tvos' or '$(TargetOS)' == 'tvossimulator'">true</TargetsAppleMobile>
</PropertyGroup>

<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
<PropertyGroup Label="CalculateArch">
<_hostArch>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</_hostArch>
<BuildArchitecture Condition="'$(BuildArchitecture)' == ''">$(_hostArch)</BuildArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'browser' or '$(RuntimeIdentifier)' == 'browser-wasm')">wasm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and ('$(TargetOS)' == 'wasi' or '$(RuntimeIdentifier)' == 'wasi-wasm')">wasm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm'">arm</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armv6'">armv6</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'armel'">armel</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'arm64'">arm64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'loongarch64'">loongarch64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 's390x'">s390x</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(_hostArch)' == 'ppc64le'">ppc64le</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(TargetsMobile)' == 'true'">x64</TargetArchitecture>
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
</PropertyGroup>
</Project>
Loading
Loading