[VMR] Support for short stack builds. (#18463)
This commit is contained in:
commit
debb6bf8f0
5 changed files with 81 additions and 2 deletions
|
@ -348,6 +348,19 @@ stages:
|
|||
### Additional jobs for full build ###
|
||||
- ${{ if in(parameters.scope, 'full') }}:
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
buildName: Android_Shortstack
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemandsLinux }}
|
||||
container: ${{ variables.androidCrossContainer }}
|
||||
targetOS: android
|
||||
targetArchitecture: x64
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
buildName: OSX
|
||||
|
|
|
@ -26,6 +26,8 @@ variables:
|
|||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64
|
||||
- name: marinerArm64CrossContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64
|
||||
- name: androidCrossContainer
|
||||
value: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-android-amd64
|
||||
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- name: defaultPoolName
|
||||
|
|
|
@ -19,6 +19,20 @@
|
|||
<TargetOS Condition="'$(TargetOS)' == ''">$(BuildOS)</TargetOS>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- This is a list of cases where we aren't producing a whole SDK, just a runtime. This list should be kept in sync with https://github.com/dotnet/runtime/blob/main/eng/SourceBuild.props#L26 -->
|
||||
<PropertyGroup Label="ShortStacks">
|
||||
<ShortStack Condition="'$(TargetOS)' == 'wasi'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'browser'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'ios'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'iossimulator'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'tvos'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'tvossimulator'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'maccatalyst'">true</ShortStack>
|
||||
<ShortStack Condition="'$(TargetOS)' == 'android'">true</ShortStack>
|
||||
<!-- Short stack builds stop at runtime, not the whole SDK -->
|
||||
<RootRepo Condition="'$(ShortStack)' == 'true'">runtime</RootRepo>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="CalculateArch">
|
||||
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</BuildArchitecture>
|
||||
<HostArchitecture Condition="'$(HostArchitecture)' == ''">$(BuildArchitecture)</HostArchitecture>
|
||||
|
@ -49,6 +63,8 @@
|
|||
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</PortableRid>
|
||||
|
||||
<TargetRid Condition="'$(PortableBuild)' == 'true' and '$(PortableRid)' != ''">$(PortableRid)</TargetRid>
|
||||
<TargetRid Condition="'$(ShortStack)' == 'true' and '$(TargetOS)' != 'windows'">$(TargetOS)-$(TargetArchitecture)</TargetRid>
|
||||
<TargetRid Condition="'$(ShortStack)' == 'true' and '$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</TargetRid>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipArcadeSdkImport)' != 'true'" />
|
||||
|
|
|
@ -15,8 +15,8 @@
|
|||
<BuildArgs>$(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) $(FlagParameterPrefix)os $(TargetOS)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:TargetRid=$(TargetRid)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:RuntimeOS=$(RuntimeOS)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:BaseOS=$(BaseOS)</BuildArgs>
|
||||
<BuildArgs Condition="'$(ShortStack)' != 'true'">$(BuildArgs) /p:RuntimeOS=$(RuntimeOS)</BuildArgs>
|
||||
<BuildArgs Condition="'$(ShortStack)' != 'true'">$(BuildArgs) /p:BaseOS=$(BaseOS)</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
From 6e36330872998c791a2c0d31b688e1bdece2451f Mon Sep 17 00:00:00 2001
|
||||
From: Jo Shields <joshield@microsoft.com>
|
||||
Date: Fri, 2 Feb 2024 06:56:20 -0500
|
||||
Subject: [PATCH] Source built short stack support (#97725)
|
||||
|
||||
Backport: https://github.com/dotnet/runtime/pull/97725
|
||||
|
||||
--- a/eng/SourceBuild.props 2024-02-07 11:01:33.807337902 -0500
|
||||
+++ b/eng/SourceBuild.props 2024-02-05 16:48:58.219933758 -0500
|
||||
@@ -15,6 +15,7 @@
|
||||
<!-- Split e.g. 'fedora.33-x64' into 'fedora.33' and 'x64'. -->
|
||||
<_targetRidPlatformIndex>$(TargetRid.LastIndexOf('-'))</_targetRidPlatformIndex>
|
||||
<TargetArch>$(TargetRid.Substring($(_targetRidPlatformIndex)).TrimStart('-'))</TargetArch>
|
||||
+ <TargetOS>$(TargetRid.Substring(0, $(_targetRidPlatformIndex)))</TargetOS>
|
||||
|
||||
<_hostRidPlatformIndex>$(_hostRid.LastIndexOf('-'))</_hostRidPlatformIndex>
|
||||
<_hostArch>$(_hostRid.Substring($(_hostRidPlatformIndex)).TrimStart('-'))</_hostArch>
|
||||
@@ -22,6 +23,17 @@
|
||||
<LogVerbosity Condition="'$(LogVerbosity)' == ''">minimal</LogVerbosity>
|
||||
</PropertyGroup>
|
||||
|
||||
+ <PropertyGroup Label="ShortStacks">
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'wasi'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'browser'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'ios'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'iossimulator'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'tvos'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'tvossimulator'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'maccatalyst'">true</ShortStack>
|
||||
+ <ShortStack Condition="'$(TargetOS)' == 'android'">true</ShortStack>
|
||||
+ </PropertyGroup>
|
||||
+
|
||||
<Target Name="GetRuntimeSourceBuildCommandConfiguration"
|
||||
BeforeTargets="GetSourceBuildCommandConfiguration">
|
||||
<PropertyGroup>
|
||||
@@ -29,9 +41,10 @@
|
||||
This allows to build the repository using './build.sh <args> /p:DotNetBuildFromSource=true'.
|
||||
Properties that control flags from source-build, and the expected output for source-build should be added to this file. -->
|
||||
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)arch $(TargetArch)</InnerBuildArgs>
|
||||
- <InnerBuildArgs Condition=" '$(TargetArch)' != '$(_hostArch)' ">$(InnerBuildArgs) $(FlagParameterPrefix)cross</InnerBuildArgs>
|
||||
+ <InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)os $(TargetOS)</InnerBuildArgs>
|
||||
+ <InnerBuildArgs Condition="'$(TargetArch)' != '$(_hostArch)' and '$(ShortStack)' != 'true'">$(InnerBuildArgs) $(FlagParameterPrefix)cross</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)configuration $(Configuration)</InnerBuildArgs>
|
||||
- <InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)allconfigurations</InnerBuildArgs>
|
||||
+ <InnerBuildArgs Condition="'$(ShortStack)' != 'true'">$(InnerBuildArgs) $(FlagParameterPrefix)allconfigurations</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)verbosity $(LogVerbosity)</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)nodereuse $(ArcadeFalseBoolBuildArg)</InnerBuildArgs>
|
||||
<InnerBuildArgs>$(InnerBuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg)</InnerBuildArgs>
|
Loading…
Add table
Add a link
Reference in a new issue