Skip to content

Commit 18645f9

Browse files
authored
Initial new-style iOS/tvOS cross compiler (#47184)
* Allow no EMSDK for cross-compiler * Don't try to include file not made during AOT on Browser * Move BuildMonoCrossAOT from a bool to a Subset-esque string * Generate wasm offsets * Add new offset generation to non-official builds too. Oops * Deal with default case when generating offsets only * We override the OS, so can't switch on it * We're being skipped again * Grr * Try another time. Merges passing in the night. * Try and make the yaml consume both offsets * Clean up last commit, which went surprisingly well * Actually consume all offsets from parameter * Yaml 🤷‍♂️ * It's not crossandroid any more, is it? * Official version * Fix typo * Fix typo in typo * Cleanups * Variable rename suggestion from Alex * More better variable names from Alex * Initial new-style AOT for iOS. Need to disable Linux builds selectively though. * Split Linux & Mac AOT * fix error in official builds
1 parent 0fee28e commit 18645f9

File tree

4 files changed

+63
-3
lines changed

4 files changed

+63
-3
lines changed

eng/pipelines/runtime-official.yml

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,8 @@ stages:
133133
platforms:
134134
- Android_x64
135135
- Browser_wasm
136+
- tvOS_x64
137+
- iOS_x64
136138

137139
#
138140
# Build Mono release AOT cross-compilers
@@ -143,7 +145,6 @@ stages:
143145
runtimeFlavor: mono
144146
buildConfig: release
145147
platforms:
146-
- OSX_x64
147148
- Linux_x64
148149
jobParameters:
149150
buildArgs: -s mono+packs -c $(_BuildConfig)
@@ -161,6 +162,33 @@ stages:
161162
extraStepsParameters:
162163
name: MonoRuntimePacks
163164

165+
- template: /eng/pipelines/common/platform-matrix.yml
166+
parameters:
167+
jobTemplate: /eng/pipelines/common/global-build-job.yml
168+
runtimeFlavor: mono
169+
buildConfig: release
170+
platforms:
171+
- OSX_x64
172+
jobParameters:
173+
buildArgs: -s mono+packs -c $(_BuildConfig)
174+
/p:MonoCrossAOTTargetOS=Android+Browser+tvOS+iOS /p:SkipMonoCrossJitConfigure=true /p:BuildMonoAOTCrossCompilerOnly=true
175+
nameSuffix: CrossAOT_Mono
176+
runtimeVariant: crossaot
177+
dependsOn:
178+
- mono_android_offsets
179+
- mono_browser_offsets
180+
- mono_tvos_offsets
181+
- mono_ios_offsets
182+
monoCrossAOTTargetOS:
183+
- Android
184+
- Browser
185+
- tvOS
186+
- iOS
187+
isOfficialBuild: ${{ variables.isOfficialBuild }}
188+
extraStepsTemplate: /eng/pipelines/common/upload-intermediate-artifacts-step.yml
189+
extraStepsParameters:
190+
name: MonoRuntimePacks
191+
164192
#
165193
# Build Mono LLVM runtime packs
166194
#

eng/pipelines/runtime.yml

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,8 @@ jobs:
193193
platforms:
194194
- Android_x64
195195
- Browser_wasm
196+
- tvOS_x64
197+
- iOS_x64
196198
jobParameters:
197199
condition: >-
198200
or(
@@ -476,7 +478,7 @@ jobs:
476478
eq(variables['isFullMatrix'], true))
477479
478480
#
479-
# Build Mono release Android AOT cross-compiler
481+
# Build Mono release AOT cross-compilers
480482
# Only when mono changed
481483
#
482484
- template: /eng/pipelines/common/platform-matrix.yml
@@ -485,7 +487,6 @@ jobs:
485487
runtimeFlavor: mono
486488
buildConfig: release
487489
platforms:
488-
- OSX_x64
489490
- Linux_x64
490491
# - Linux_arm64
491492
# - Linux_musl_arm64
@@ -507,6 +508,31 @@ jobs:
507508
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
508509
eq(variables['isFullMatrix'], true))
509510
511+
- template: /eng/pipelines/common/platform-matrix.yml
512+
parameters:
513+
jobTemplate: /eng/pipelines/mono/templates/build-job.yml
514+
runtimeFlavor: mono
515+
buildConfig: release
516+
platforms:
517+
- OSX_x64
518+
jobParameters:
519+
runtimeVariant: crossaot
520+
dependsOn:
521+
- mono_android_offsets
522+
- mono_browser_offsets
523+
- mono_tvos_offsets
524+
- mono_ios_offsets
525+
monoCrossAOTTargetOS:
526+
- Android
527+
- Browser
528+
- tvOS
529+
- iOS
530+
condition: >-
531+
or(
532+
eq(dependencies.evaluate_paths.outputs['SetPathVars_mono.containsChange'], true),
533+
eq(dependencies.evaluate_paths.outputs['SetPathVars_installer.containsChange'], true),
534+
eq(variables['isFullMatrix'], true))
535+
510536
#
511537
# Build Mono release
512538
# Only when libraries or mono changed

src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<_MonoCrossAOTTargetOS Condition="'$(MonoCrossAOTTargetOS)' != ''">+$(MonoCrossAOTTargetOS.ToLowerInvariant())+</_MonoCrossAOTTargetOS>
55
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+android+'))">$(MonoAotTargets);android-x64;android-arm64;android-x86;android-arm</MonoAotTargets>
66
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+browser+'))">$(MonoAotTargets);browser-wasm</MonoAotTargets>
7+
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+tvos+'))">$(MonoAotTargets);tvos-x64;tvos-arm64</MonoAotTargets>
8+
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+ios+'))">$(MonoAotTargets);ios-x64;ios-arm64;ios-x86;ios-arm</MonoAotTargets>
79
</PropertyGroup>
810

911
<ItemGroup>

src/mono/monoaotcross.proj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@
99
<_MonoGenerateOffsetsOSGroups Condition="'$(MonoGenerateOffsetsOSGroups)' != ''">+$(MonoGenerateOffsetsOSGroups.ToLowerInvariant())+</_MonoGenerateOffsetsOSGroups>
1010
<_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+android+'))">$(_MonoCrossAOTTargetOS)+android+</_MonoCrossAOTTargetOS>
1111
<_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+browser+'))">$(_MonoCrossAOTTargetOS)+browser+</_MonoCrossAOTTargetOS>
12+
<_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+tvos+'))">$(_MonoCrossAOTTargetOS)+tvos+</_MonoCrossAOTTargetOS>
13+
<_MonoCrossAOTTargetOS Condition="$(_MonoGenerateOffsetsOSGroups.contains('+ios+'))">$(_MonoCrossAOTTargetOS)+ios+</_MonoCrossAOTTargetOS>
1214
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+android+'))">$(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm</MonoAotTargets>
1315
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+browser+'))">$(MonoAotTargets);Browser-wasm</MonoAotTargets>
16+
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+tvos+'))">$(MonoAotTargets);tvOS-x64;tvOS-arm64</MonoAotTargets>
17+
<MonoAotTargets Condition="$(_MonoCrossAOTTargetOS.contains('+ios+'))">$(MonoAotTargets);iOS-x64;iOS-arm64;iOS-x86;iOS-arm</MonoAotTargets>
1418
</PropertyGroup>
1519

1620
<ItemGroup>

0 commit comments

Comments
 (0)