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

Add Mac Catalyst (iOS API, Mac ABI) runtime #47823

Merged
merged 32 commits into from
Feb 8, 2021
Merged
Changes from 1 commit
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
5015d03
Initial support for Mac Catalyst for mono subset (incl SPC)
directhex Feb 1, 2021
8980f41
Get host and libs.native building. Lingering type forward issue w/ libs
directhex Feb 1, 2021
840e234
Add support for ARM64 Mac Catalyst
directhex Feb 2, 2021
901bac3
Add platform checks. Ref https://github.com/dotnet/runtime/issues/47768
directhex Feb 2, 2021
ce6ef33
Add Mac Catalyst TFM consumption where we have iOS TFM consumption
directhex Feb 2, 2021
b955a3a
Unify around maccatalyst name, fix up build a little
directhex Feb 2, 2021
ab7d99f
Partially bring up app builder.
directhex Feb 3, 2021
2ccad31
Merge remote-tracking branch 'origin/master' into catalyse
directhex Feb 3, 2021
5ee8b78
Finish brining up app builder. Next, test runner.y
directhex Feb 3, 2021
49ab49a
Fix test runner. Now only xharness itself is bad
directhex Feb 3, 2021
cbec4f2
re-enable all tests
directhex Feb 3, 2021
72e9368
Bad change, revert
directhex Feb 3, 2021
9cb3d5e
copy-paste error
directhex Feb 4, 2021
0f70185
Unify around "MacCatalyst", get rid of all uses of "Catalyst"
directhex Feb 4, 2021
5a3ab81
Add some yaml for Mac Catalyst
directhex Feb 4, 2021
2d5d1fb
Use "correct" Catalyst OS version targets - 11.0 ARM64 & 10.15.5 x64
directhex Feb 4, 2021
8daf812
Disable -Woverriding-t-option on Mac Catalyst builds
directhex Feb 4, 2021
519b266
Fix build failure
directhex Feb 4, 2021
a88df9f
Update src/libraries/System.Private.CoreLib/src/System/OperatingSyste…
directhex Feb 4, 2021
7f9099b
Merge remote-tracking branch 'origin/master' into catalyse
directhex Feb 5, 2021
ebdb15e
Fix folder detection for Catalyst test apps
directhex Feb 5, 2021
a3efc53
Merge remote-tracking branch 'directhex/catalyse' into catalyse
directhex Feb 5, 2021
59ce230
Address changes suggested by Alex
directhex Feb 5, 2021
d75869a
Fix unused variable when HAVE_SYSTEM is false
directhex Feb 5, 2021
e7cd8cc
Fix arm64 build starting. Remaining void->int error to fix due to Werror
directhex Feb 5, 2021
1192773
More fixes from Alex
directhex Feb 5, 2021
1dc4019
Disable more tests, pending API changes
directhex Feb 5, 2021
740dddb
Remove retired C define
directhex Feb 5, 2021
619e4d5
More changes from Alex
directhex Feb 5, 2021
d0c70b9
Merge remote-tracking branch 'origin/master' into catalyse
directhex Feb 8, 2021
6ac6335
Fixes from Zoltan and Steve for arm64
directhex Feb 8, 2021
1ee37bc
Build Catalyst for arm64 too
directhex Feb 8, 2021
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
Prev Previous commit
Next Next commit
Disable -Woverriding-t-option on Mac Catalyst builds
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.
  • Loading branch information
directhex committed Feb 4, 2021
commit 8daf812cf51d74b1b1c0a8ec44f5c782728b98c3
6 changes: 6 additions & 0 deletions eng/native/configurecompiler.cmake
Original file line number Diff line number Diff line change
@@ -388,6 +388,12 @@ if (CLR_CMAKE_HOST_UNIX)
if(CLR_CMAKE_HOST_OSX)
# Mac Catalyst needs a special CFLAG, exclusive with mmacosx-version-min
if(CLR_CMAKE_TARGET_MACCATALYST)
# Somewhere between CMake 3.17 and 3.19.4, it became impossible to not pass
directhex marked this conversation as resolved.
Show resolved Hide resolved
# a value for mmacosx-version-min (blank CMAKE_OSX_DEPLOYMENT_TARGET gets
# replaced with a default value, and always gets expanded to an OS version.
# We need to disable the warning that -tagret replaces -mmacosx-version-min
add_compile_options(-Wno-overriding-t-option)
add_link_options(-Wno-overriding-t-option)
if(CLR_CMAKE_HOST_ARCH_ARM64)
add_compile_options(-target arm64-apple-ios14.2-macabi)
add_link_options(-target arm64-apple-ios14.2-macabi)
3 changes: 3 additions & 0 deletions src/libraries/Native/Unix/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -77,6 +77,9 @@ if(CLR_CMAKE_TARGET_BROWSER)
endif()

if(CLR_CMAKE_TARGET_MACCATALYST)
# -target overrides -mmacosx-version-min so suppress warning about that
directhex marked this conversation as resolved.
Show resolved Hide resolved
add_compile_options(-Wno-overriding-t-option)
add_link_options(-Wno-overriding-t-option)
if (CLR_CMAKE_TARGET_ARCH_AMD64)
add_compile_options(-target x86_64-apple-ios13.5-macabi)
add_link_options(-target x86_64-apple-ios13.5-macabi)
1 change: 1 addition & 0 deletions src/mono/mono.proj
Original file line number Diff line number Diff line change
@@ -204,6 +204,7 @@
</ItemGroup>
<!-- Mac Catalyst specific options -->
<ItemGroup Condition="'$(TargetsMacCatalyst)' == 'true'">
<_MonoCPPFLAGS Include="-Wno-overriding-t-option" />
directhex marked this conversation as resolved.
Show resolved Hide resolved
<_MonoCFlags Condition="'$(TargetArchitecture)' == 'arm64'" Include="-target arm64-apple-ios14.2-macabi" />
<_MonoCFlags Condition="'$(TargetArchitecture)' == 'x64'" Include="-target x86_64-apple-ios13.5-macabi" />
<_MonoCFlags Include="-DMAC_CATALYST" />
directhex marked this conversation as resolved.
Show resolved Hide resolved