-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Add Mac Catalyst (iOS API, Mac ABI) runtime #47823
Conversation
THIS IS INCOMPLETE, THERE ARE MISSING SYMBOLS LINKING THE RUNTIME
Note regarding the This serves as a reminder for when your PR is modifying a ref *.cs file and adding/modifying public APIs, to please make sure the API implementation in the src *.cs file is documented with triple slash comments, so the PR reviewers can sign off that change. |
Tagging subscribers to this area: @safern, @ViktorHofer Issue DetailsThis ties into several concurrent discussions: #47645 I've made a few assumptions for now:
It should work well enough right now to happily build a
|
I haven't added yml to build the new stuff yet |
src/libraries/System.Private.CoreLib/src/System/OperatingSystem.cs
Outdated
Show resolved
Hide resolved
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
Outdated
Show resolved
Hide resolved
Doesn't build with updated cmake. How exciting! |
Somewhere between CMake 3.17 and 3.19.4, a decision was made to force setting of -mmacosx-version-min when building with an OSX SDK. Leave The relevant cmake deployment variable blank, and it just picks its own default. You can't bypass it, as far as I can tell. Mac Catalyst requires a -target flag, which is incompatible with a -mmacosx-version-min flag. Sadly, our best option is to suppress the warning/error, as the bug is in CMake not with us.
Relevant CMake issue is https://gitlab.kitware.com/cmake/cmake/-/issues/20132. I have a workaround, pushing to branch |
src/libraries/System.Private.CoreLib/src/System.Private.CoreLib.Shared.projitems
Outdated
Show resolved
Hide resolved
ARM64 builds blocked on:
|
CI is boned today, and it's not my fault |
ARM64 will be turned on when #47891 is fixed and merged |
AppleAppBuilder needs serious work for Mac Catalyst ARM64, but should be good on x64 |
I've dispatched an official build, since my "oops it broke official builds" success rate isn't great |
passed on internal |
This ties into several concurrent discussions:
#47645
#47517
#47518
#44882
dotnet/designs#174
#47768
dotnet/xamarin#29
I've made a few assumptions for now:
maccatalyst-x64
andmaccatalyst-arm64
net6.0-maccatalyst
TargetsMacCatalyst
gets defined in the buildIsMacCatalyst()
andIsMacCatalystVersionAtLeast()
get added to System.Runtime (an API change in need of review)--os maccatalyst
gets passed to build.shmaccatalyst
Add Support for Mac Catalyst xharness#435It should work well enough right now to happily build a
maccatalyst-x64
runtime pack.maccatalyst-arm64
requires an LLVM build, which we don't have as of today, plus a newer macOS/Xcode than my current dev machine. I know I've made some incorrect assumptions regarding ARM64 (e.g. the target iOS version for Catalyst needs to map to macOS 11.0+, but the number I'm using maps to 10.15.1)