Skip to content

Commit 44f8f0f

Browse files
authored
Add Mac Catalyst (iOS API, Mac ABI) runtime (#47823)
Initial support for Mac Catalyst for mono subset. This enables building runtime packs and working jobs, but right now the `tests` subset needs some work to allow library test runs in CI
1 parent 5d5c3e7 commit 44f8f0f

File tree

83 files changed

+418
-169
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+418
-169
lines changed

Directory.Build.props

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('SOLARIS'))">Solaris</TargetOS>
1818
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSUnixLike())">Linux</TargetOS>
1919
<TargetOS Condition="'$(TargetOS)' == '' and $([MSBuild]::IsOSPlatform('WINDOWS'))">windows</TargetOS>
20-
<TargetsMobile Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'Browser'">true</TargetsMobile>
20+
<TargetsMobile Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'Android' or '$(TargetOS)' == 'Browser'">true</TargetsMobile>
2121
</PropertyGroup>
2222

2323
<!-- Platform property is required by RepoLayout.props in Arcade SDK. -->
@@ -117,6 +117,7 @@
117117
<_portableOS Condition="'$(_runtimeOSFamily)' == 'illumos'">illumos</_portableOS>
118118
<_portableOS Condition="'$(_runtimeOSFamily)' == 'Solaris'">solaris</_portableOS>
119119
<_portableOS Condition="'$(_runtimeOS)' == 'Browser'">browser</_portableOS>
120+
<_portableOS Condition="'$(_runtimeOS)' == 'maccatalyst'">maccatalyst</_portableOS>
120121
<_portableOS Condition="'$(_runtimeOS)' == 'ios'">ios</_portableOS>
121122
<_portableOS Condition="'$(_runtimeOS)' == 'tvos'">tvos</_portableOS>
122123
<_portableOS Condition="'$(_runtimeOS)' == 'android'">android</_portableOS>
@@ -144,8 +145,8 @@
144145
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and $([MSBuild]::IsOSPlatform('WINDOWS'))">win-x64</_toolRuntimeRID>
145146
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and $([MSBuild]::IsOSPlatform('OSX'))">osx-x64</_toolRuntimeRID>
146147

147-
<!-- There are no iOS or tvOS tools and it can be built on OSX only, so use that -->
148-
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'tvos'">osx-x64</_toolRuntimeRID>
148+
<!-- There are no Mac Catalyst, iOS or tvOS tools and it can be built on OSX only, so use that -->
149+
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'tvos'">osx-x64</_toolRuntimeRID>
149150

150151
<MicrosoftNetCoreIlasmPackageRuntimeId>$(_toolRuntimeRID)</MicrosoftNetCoreIlasmPackageRuntimeId>
151152

@@ -160,6 +161,7 @@
160161
<_outputRID Condition="'$(TargetOS)' == 'NetBSD'">netbsd-$(TargetArchitecture)</_outputRID>
161162
<_outputRID Condition="'$(TargetOS)' == 'illumos'">illumos-$(TargetArchitecture)</_outputRID>
162163
<_outputRID Condition="'$(TargetOS)' == 'Solaris'">solaris-$(TargetArchitecture)</_outputRID>
164+
<_outputRID Condition="'$(TargetOS)' == 'MacCatalyst'">maccatalyst-$(TargetArchitecture)</_outputRID>
163165
<_outputRID Condition="'$(TargetOS)' == 'iOS'">ios-$(TargetArchitecture)</_outputRID>
164166
<_outputRID Condition="'$(TargetOS)' == 'tvOS'">tvos-$(TargetArchitecture)</_outputRID>
165167
<_outputRID Condition="'$(TargetOS)' == 'Android'">android-$(TargetArchitecture)</_outputRID>
@@ -176,14 +178,15 @@
176178
<TargetsLinux Condition="'$(TargetOS)' == 'Linux' or '$(TargetOS)' == 'Android'">true</TargetsLinux>
177179
<TargetsNetBSD Condition="'$(TargetOS)' == 'NetBSD'">true</TargetsNetBSD>
178180
<TargetsOSX Condition="'$(TargetOS)' == 'OSX'">true</TargetsOSX>
181+
<TargetsMacCatalyst Condition="'$(TargetOS)' == 'MacCatalyst'">true</TargetsMacCatalyst>
179182
<TargetsiOS Condition="'$(TargetOS)' == 'iOS'">true</TargetsiOS>
180183
<TargetstvOS Condition="'$(TargetOS)' == 'tvOS'">true</TargetstvOS>
181184
<TargetsiOSSimulator Condition="'$(TargetsiOS)' == 'true' and ('$(TargetArchitecture)' == 'x64' or '$(TargetArchitecture)' == 'x86')">true</TargetsiOSSimulator>
182185
<TargetstvOSSimulator Condition="'$(TargetstvOS)' == 'true' and '$(TargetArchitecture)' == 'x64'">true</TargetstvOSSimulator>
183186
<TargetsAndroid Condition="'$(TargetOS)' == 'Android'">true</TargetsAndroid>
184187
<TargetsBrowser Condition="'$(TargetOS)' == 'Browser'">true</TargetsBrowser>
185188
<TargetsWindows Condition="'$(TargetOS)' == 'windows'">true</TargetsWindows>
186-
<TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
189+
<TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(Targetsillumos)' == 'true' or '$(TargetsSolaris)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true' or '$(TargetsMacCatalyst)' == 'true' or '$(TargetstvOS)' == 'true' or '$(TargetsiOS)' == 'true' or '$(TargetsAndroid)' == 'true'">true</TargetsUnix>
187190
</PropertyGroup>
188191

189192
<!--Feature switches -->

eng/build.sh

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ usage()
2828
echo " --help (-h) Print help and exit."
2929
echo " --librariesConfiguration (-lc) Libraries build configuration: Debug or Release."
3030
echo " [Default: Debug]"
31-
echo " --os Target operating system: windows, Linux, FreeBSD, OSX, tvOS, iOS, Android,"
31+
echo " --os Target operating system: windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, iOS, Android,"
3232
echo " Browser, NetBSD, illumos or Solaris."
3333
echo " [Default: Your machine's OS.]"
3434
echo " --projects <value> Project or solution file(s) to build."
@@ -262,6 +262,8 @@ while [[ $# > 0 ]]; do
262262
os="FreeBSD" ;;
263263
osx)
264264
os="OSX" ;;
265+
maccatalyst)
266+
os="MacCatalyst" ;;
265267
tvos)
266268
os="tvOS" ;;
267269
ios)
@@ -276,7 +278,7 @@ while [[ $# > 0 ]]; do
276278
os="Solaris" ;;
277279
*)
278280
echo "Unsupported target OS '$2'."
279-
echo "The allowed values are windows, Linux, FreeBSD, OSX, tvOS, iOS, Android, Browser, illumos and Solaris."
281+
echo "The allowed values are windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, iOS, Android, Browser, illumos and Solaris."
280282
exit 1
281283
;;
282284
esac

eng/native/build-commons.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ build_native()
7878
# All set to commence the build
7979
echo "Commencing build of \"$message\" for $__TargetOS.$__BuildArch.$__BuildType in $intermediatesDir"
8080

81-
if [[ "$targetOS" == OSX ]]; then
81+
if [[ "$targetOS" == OSX || "$targetOS" == MacCatalyst ]]; then
8282
if [[ "$platformArch" == x64 ]]; then
8383
cmakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $cmakeArgs"
8484
elif [[ "$platformArch" == arm64 ]]; then
@@ -89,6 +89,10 @@ build_native()
8989
fi
9090
fi
9191

92+
if [[ "$targetOS" == MacCatalyst ]]; then
93+
cmakeArgs="-DCLR_CMAKE_TARGET_MACCATALYST=1 $cmakeArgs"
94+
fi
95+
9296
if [[ "$__UseNinja" == 1 ]]; then
9397
generator="ninja"
9498
buildTool="$(command -v ninja || command -v ninja-build)"

eng/native/configurecompiler.cmake

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -390,19 +390,40 @@ if (CLR_CMAKE_HOST_UNIX)
390390

391391
# Specify the minimum supported version of macOS
392392
if(CLR_CMAKE_HOST_OSX)
393-
if(CLR_CMAKE_HOST_ARCH_ARM64)
394-
# 'pthread_jit_write_protect_np' is only available on macOS 11.0 or newer
395-
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=11.0)
396-
add_compile_options(-arch arm64)
397-
elseif(CLR_CMAKE_HOST_ARCH_AMD64)
398-
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=10.13)
399-
add_compile_options(-arch x86_64)
393+
# Mac Catalyst needs a special CFLAG, exclusive with mmacosx-version-min
394+
if(CLR_CMAKE_TARGET_MACCATALYST)
395+
# Somewhere between CMake 3.17 and 3.19.4, it became impossible to not pass
396+
# a value for mmacosx-version-min (blank CMAKE_OSX_DEPLOYMENT_TARGET gets
397+
# replaced with a default value, and always gets expanded to an OS version.
398+
# https://gitlab.kitware.com/cmake/cmake/-/issues/20132
399+
# We need to disable the warning that -tagret replaces -mmacosx-version-min
400+
add_compile_options(-Wno-overriding-t-option)
401+
add_link_options(-Wno-overriding-t-option)
402+
if(CLR_CMAKE_HOST_ARCH_ARM64)
403+
add_compile_options(-target arm64-apple-ios14.2-macabi)
404+
add_link_options(-target arm64-apple-ios14.2-macabi)
405+
elseif(CLR_CMAKE_HOST_ARCH_AMD64)
406+
add_compile_options(-target x86_64-apple-ios13.5-macabi)
407+
add_link_options(-target x86_64-apple-ios13.5-macabi)
408+
else()
409+
clr_unknown_arch()
410+
endif()
400411
else()
401-
clr_unknown_arch()
402-
endif()
403-
add_compile_options(${MACOS_VERSION_MIN_FLAGS})
404-
add_linker_flag(${MACOS_VERSION_MIN_FLAGS})
412+
if(CLR_CMAKE_HOST_ARCH_ARM64)
413+
# 'pthread_jit_write_protect_np' is only available on macOS 11.0 or newer
414+
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=11.0)
415+
add_compile_options(-arch arm64)
416+
elseif(CLR_CMAKE_HOST_ARCH_AMD64)
417+
set(MACOS_VERSION_MIN_FLAGS -mmacosx-version-min=10.13)
418+
add_compile_options(-arch x86_64)
419+
else()
420+
clr_unknown_arch()
421+
endif()
422+
add_compile_options(${MACOS_VERSION_MIN_FLAGS})
423+
add_linker_flag(${MACOS_VERSION_MIN_FLAGS})
424+
endif(CLR_CMAKE_TARGET_MACCATALYST)
405425
endif(CLR_CMAKE_HOST_OSX)
426+
406427
endif(CLR_CMAKE_HOST_UNIX)
407428

408429
if(CLR_CMAKE_TARGET_UNIX)

eng/native/configureplatform.cmake

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ if(CLR_CMAKE_TARGET_OS STREQUAL iOS)
305305
set(CLR_CMAKE_TARGET_IOS 1)
306306
endif(CLR_CMAKE_TARGET_OS STREQUAL iOS)
307307

308+
if(CLR_CMAKE_TARGET_OS STREQUAL MacCatalyst)
309+
set(CLR_CMAKE_TARGET_UNIX 1)
310+
set(CLR_CMAKE_TARGET_MACCATALYST 1)
311+
endif(CLR_CMAKE_TARGET_OS STREQUAL MacCatalyst)
312+
308313
if(CLR_CMAKE_TARGET_OS STREQUAL tvOS)
309314
set(CLR_CMAKE_TARGET_UNIX 1)
310315
set(CLR_CMAKE_TARGET_TVOS 1)

eng/native/configuretools.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ if(NOT WIN32 AND NOT CLR_CMAKE_TARGET_BROWSER)
4747
locate_toolchain_exec(link CMAKE_LINKER)
4848
endif()
4949

50-
if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
50+
if(NOT CLR_CMAKE_TARGET_OSX AND NOT CLR_CMAKE_TARGET_MACCATALYST AND NOT CLR_CMAKE_TARGET_IOS AND NOT CLR_CMAKE_TARGET_TVOS AND (NOT CLR_CMAKE_TARGET_ANDROID OR CROSS_ROOTFS))
5151
locate_toolchain_exec(objdump CMAKE_OBJDUMP)
5252

5353
if(CLR_CMAKE_TARGET_ANDROID)

eng/native/functions.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ function(generate_exports_file)
211211
list(GET INPUT_LIST -1 outputFilename)
212212
list(REMOVE_AT INPUT_LIST -1)
213213

214-
if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
214+
if(CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
215215
set(SCRIPT_NAME generateexportedsymbols.sh)
216216
else()
217217
set(SCRIPT_NAME generateversionscript.sh)
@@ -252,7 +252,7 @@ function(strip_symbols targetName outputFilename)
252252
if (CLR_CMAKE_HOST_UNIX)
253253
set(strip_source_file $<TARGET_FILE:${targetName}>)
254254

255-
if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
255+
if (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
256256
set(strip_destination_file ${strip_source_file}.dwarf)
257257

258258
# Ensure that dsymutil and strip are present
@@ -281,7 +281,7 @@ function(strip_symbols targetName outputFilename)
281281
COMMAND ${strip_command}
282282
COMMENT "Stripping symbols from ${strip_source_file} into file ${strip_destination_file}"
283283
)
284-
else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
284+
else (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
285285
set(strip_destination_file ${strip_source_file}.dbg)
286286

287287
add_custom_command(
@@ -293,7 +293,7 @@ function(strip_symbols targetName outputFilename)
293293
COMMAND ${CMAKE_OBJCOPY} --add-gnu-debuglink=${strip_destination_file} ${strip_source_file}
294294
COMMENT "Stripping symbols from ${strip_source_file} into file ${strip_destination_file}"
295295
)
296-
endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
296+
endif (CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS)
297297

298298
set(${outputFilename} ${strip_destination_file} PARENT_SCOPE)
299299
else(CLR_CMAKE_HOST_UNIX)
@@ -316,7 +316,7 @@ function(install_with_stripped_symbols targetName kind destination)
316316
install_symbols(${symbol_file} ${destination})
317317
endif()
318318

319-
if ((CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) AND ("${kind}" STREQUAL "TARGETS"))
319+
if ((CLR_CMAKE_TARGET_OSX OR CLR_CMAKE_TARGET_MACCATALYST OR CLR_CMAKE_TARGET_IOS OR CLR_CMAKE_TARGET_TVOS) AND ("${kind}" STREQUAL "TARGETS"))
320320
# We want to avoid the kind=TARGET install behaviors which corrupt code signatures on osx-arm64
321321
set(kind PROGRAMS)
322322
endif()

eng/native/init-distro-rid.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,8 @@ initDistroRidGlobal()
170170
distroRid="linux-$buildArch"
171171
elif [ "$targetOs" = "OSX" ]; then
172172
distroRid="osx-$buildArch"
173+
elif [ "$targetOs" = "MacCatalyst" ]; then
174+
distroRid="maccatalyst-$buildArch"
173175
elif [ "$targetOs" = "tvOS" ]; then
174176
distroRid="tvos-$buildArch"
175177
elif [ "$targetOs" = "iOS" ]; then

eng/pipelines/common/platform-matrix.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,48 @@ jobs:
323323
helixQueueGroup: ${{ parameters.helixQueueGroup }}
324324
${{ insert }}: ${{ parameters.jobParameters }}
325325

326+
# Mac Catalyst x64
327+
328+
- ${{ if containsValue(parameters.platforms, 'MacCatalyst_x64') }}:
329+
- template: xplat-setup.yml
330+
parameters:
331+
jobTemplate: ${{ parameters.jobTemplate }}
332+
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
333+
variables: ${{ parameters.variables }}
334+
osGroup: MacCatalyst
335+
archType: x64
336+
targetRid: maccatalyst-x64
337+
platform: MacCatalyst_x64
338+
jobParameters:
339+
runtimeFlavor: mono
340+
stagedBuild: ${{ parameters.stagedBuild }}
341+
buildConfig: ${{ parameters.buildConfig }}
342+
${{ if eq(parameters.passPlatforms, true) }}:
343+
platforms: ${{ parameters.platforms }}
344+
helixQueueGroup: ${{ parameters.helixQueueGroup }}
345+
${{ insert }}: ${{ parameters.jobParameters }}
346+
347+
# Mac Catalyst arm64
348+
349+
- ${{ if containsValue(parameters.platforms, 'MacCatalyst_arm64') }}:
350+
- template: xplat-setup.yml
351+
parameters:
352+
jobTemplate: ${{ parameters.jobTemplate }}
353+
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
354+
variables: ${{ parameters.variables }}
355+
osGroup: MacCatalyst
356+
archType: arm64
357+
targetRid: maccatalyst-arm64
358+
platform: MacCatalyst_arm64
359+
jobParameters:
360+
runtimeFlavor: mono
361+
stagedBuild: ${{ parameters.stagedBuild }}
362+
buildConfig: ${{ parameters.buildConfig }}
363+
${{ if eq(parameters.passPlatforms, true) }}:
364+
platforms: ${{ parameters.platforms }}
365+
helixQueueGroup: ${{ parameters.helixQueueGroup }}
366+
${{ insert }}: ${{ parameters.jobParameters }}
367+
326368
# tvOS x64
327369

328370
- ${{ if containsValue(parameters.platforms, 'tvOS_x64') }}:

eng/pipelines/common/xplat-setup.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ jobs:
119119
queue: BuildPool.Ubuntu.1604.Amd64
120120

121121
# OSX Build Pool (we don't have on-prem OSX BuildPool
122-
${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}:
122+
${{ if in(parameters.osGroup, 'OSX', 'MacCatalyst', 'iOS', 'tvOS') }}:
123123
vmImage: 'macOS-10.15'
124124

125125
# Official Build Windows Pool
@@ -135,7 +135,7 @@ jobs:
135135

136136
${{ if eq(parameters.helixQueuesTemplate, '') }}:
137137
# macOS hosted pool machines are slower so we need to give a greater timeout than the 60 mins default.
138-
${{ if and(eq(parameters.jobParameters.timeoutInMinutes, ''), in(parameters.osGroup, 'OSX', 'iOS', 'tvOS')) }}:
138+
${{ if and(eq(parameters.jobParameters.timeoutInMinutes, ''), in(parameters.osGroup, 'OSX', 'MacCatalyst', 'iOS', 'tvOS')) }}:
139139
timeoutInMinutes: 120
140140
${{ insert }}: ${{ parameters.jobParameters }}
141141
${{ if ne(parameters.helixQueuesTemplate, '') }}:

eng/pipelines/runtime-official.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ stages:
9898
- Android_x86
9999
- Android_arm
100100
- Android_arm64
101+
- MacCatalyst_x64
102+
- MacCatalyst_arm64
101103
- tvOS_x64
102104
- tvOS_arm64
103105
- iOS_x64

eng/pipelines/runtime.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@ jobs:
212212
runtimeFlavor: mono
213213
platforms:
214214
- Android_x86
215+
- MacCatalyst_x64
216+
- MacCatalyst_arm64
215217
- tvOS_x64
216218
- iOS_arm64
217219
- iOS_x86
@@ -1050,4 +1052,4 @@ jobs:
10501052
or(
10511053
eq(dependencies.evaluate_paths.outputs['SetPathVars_coreclr.containsChange'], true),
10521054
eq(dependencies.evaluate_paths.outputs['SetPathVars_libraries.containsChange'], true),
1053-
eq(variables['isFullMatrix'], true))
1055+
eq(variables['isFullMatrix'], true))

eng/targetframeworksuffix.props

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@
4646
<PackageTargetRuntime>osx</PackageTargetRuntime>
4747
</PropertyGroup>
4848
</When>
49+
<When Condition="'$(TargetFrameworkSuffix)' == 'MacCatalyst'">
50+
<PropertyGroup>
51+
<TargetsUnix>true</TargetsUnix>
52+
<TargetsMacCatalyst>true</TargetsMacCatalyst>
53+
<PackageTargetRuntime>maccatalyst</PackageTargetRuntime>
54+
</PropertyGroup>
55+
</When>
4956
<When Condition="'$(TargetFrameworkSuffix)' == 'tvOS'">
5057
<PropertyGroup>
5158
<TargetsUnix>true</TargetsUnix>

eng/testing/AppleRunnerTemplate.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ if [ -n "$5" ]; then
1616
EXPECTED_EXIT_CODE="--expected-exit-code $5"
1717
fi
1818

19+
if [[ "$TARGET_OS" == "MacCatalyst" ]]; then TARGET=maccatalyst; fi
20+
1921
if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "x86" ]]; then TARGET=ios-simulator-32; fi
2022
if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "x64" ]]; then TARGET=ios-simulator-64; fi
2123
if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "arm" ]]; then TARGET=ios-device; fi
@@ -29,6 +31,7 @@ if [[ "$TARGET" == "ios-simulator-"* ]]; then SCHEME_SDK=Release-iphonesimulator
2931
if [[ "$TARGET" == "tvos-simulator" ]]; then SCHEME_SDK=Release-appletvsimulator; fi
3032
if [[ "$TARGET" == "ios-device" ]]; then SCHEME_SDK=Release-iphoneos; fi
3133
if [[ "$TARGET" == "tvos-device" ]]; then SCHEME_SDK=Release-appletvos; fi
34+
if [[ "$TARGET" == "maccatalyst" ]]; then SCHEME_SDK=Release-maccatalyst; fi
3235

3336
cd $EXECUTION_DIR
3437

0 commit comments

Comments
 (0)