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

Fix minimum iOS/tvOS version and add iOS 14 to RID graph #50167

Merged
merged 2 commits into from
Apr 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
303 changes: 56 additions & 247 deletions src/libraries/Microsoft.NETCore.Platforms/src/runtime.compatibility.json

Large diffs are not rendered by default.

120 changes: 25 additions & 95 deletions src/libraries/Microsoft.NETCore.Platforms/src/runtime.json
Original file line number Diff line number Diff line change
Expand Up @@ -1116,31 +1116,31 @@
},
"ios.10": {
"#import": [
"ios.9"
"ios"
]
},
"ios.10-arm": {
"#import": [
"ios.10",
"ios.9-arm"
"ios-arm"
]
},
"ios.10-arm64": {
"#import": [
"ios.10",
"ios.9-arm64"
"ios-arm64"
]
},
"ios.10-x64": {
"#import": [
"ios.10",
"ios.9-x64"
"ios-x64"
]
},
"ios.10-x86": {
"#import": [
"ios.10",
"ios.9-x86"
"ios-x86"
]
},
"ios.11": {
Expand Down Expand Up @@ -1194,62 +1194,21 @@
"ios.12-x64"
]
},
"ios.8": {
"#import": [
"ios"
]
},
"ios.8-arm": {
"#import": [
"ios.8",
"ios-arm"
]
},
"ios.8-arm64": {
"#import": [
"ios.8",
"ios-arm64"
]
},
"ios.8-x64": {
"#import": [
"ios.8",
"ios-x64"
]
},
"ios.8-x86": {
"#import": [
"ios.8",
"ios-x86"
]
},
"ios.9": {
"#import": [
"ios.8"
]
},
"ios.9-arm": {
"#import": [
"ios.9",
"ios.8-arm"
]
},
"ios.9-arm64": {
"ios.14": {
"#import": [
"ios.9",
"ios.8-arm64"
"ios.13"
]
},
"ios.9-x64": {
"ios.14-arm64": {
"#import": [
"ios.9",
"ios.8-x64"
"ios.14",
"ios.13-arm64"
]
},
"ios.9-x86": {
"ios.14-x64": {
"#import": [
"ios.9",
"ios.8-x86"
"ios.14",
"ios.13-x64"
]
},
"iossimulator": {
Expand Down Expand Up @@ -1277,25 +1236,25 @@
},
"iossimulator.10": {
"#import": [
"iossimulator.9"
"iossimulator"
]
},
"iossimulator.10-arm64": {
"#import": [
"iossimulator.10",
"iossimulator.9-arm64"
"iossimulator-arm64"
]
},
"iossimulator.10-x64": {
"#import": [
"iossimulator.10",
"iossimulator.9-x64"
"iossimulator-x64"
]
},
"iossimulator.10-x86": {
"#import": [
"iossimulator.10",
"iossimulator.9-x86"
"iossimulator-x86"
]
},
"iossimulator.11": {
Expand Down Expand Up @@ -1349,50 +1308,21 @@
"iossimulator.12-x64"
]
},
"iossimulator.8": {
"#import": [
"iossimulator"
]
},
"iossimulator.8-arm64": {
"#import": [
"iossimulator.8",
"iossimulator-arm64"
]
},
"iossimulator.8-x64": {
"#import": [
"iossimulator.8",
"iossimulator-x64"
]
},
"iossimulator.8-x86": {
"#import": [
"iossimulator.8",
"iossimulator-x86"
]
},
"iossimulator.9": {
"#import": [
"iossimulator.8"
]
},
"iossimulator.9-arm64": {
"iossimulator.14": {
"#import": [
"iossimulator.9",
"iossimulator.8-arm64"
"iossimulator.13"
]
},
"iossimulator.9-x64": {
"iossimulator.14-arm64": {
"#import": [
"iossimulator.9",
"iossimulator.8-x64"
"iossimulator.14",
"iossimulator.13-arm64"
]
},
"iossimulator.9-x86": {
"iossimulator.14-x64": {
"#import": [
"iossimulator.9",
"iossimulator.8-x86"
"iossimulator.14",
"iossimulator.13-x64"
]
},
"linux": {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -83,23 +83,23 @@
<RuntimeGroup Include="ios">
<Parent>unix</Parent>
<Architectures>arm;x86</Architectures>
<Versions>8;9;10</Versions>
<Versions>10</Versions>
</RuntimeGroup>
<RuntimeGroup Include="ios">
<Parent>unix</Parent>
<Architectures>arm64;x64</Architectures>
<Versions>8;9;10;11;12;13</Versions>
<Versions>10;11;12;13;14</Versions>
</RuntimeGroup>

<RuntimeGroup Include="iossimulator">
<Parent>ios</Parent>
<Architectures>x86</Architectures>
<Versions>8;9;10</Versions>
<Versions>10</Versions>
</RuntimeGroup>
<RuntimeGroup Include="iossimulator">
<Parent>ios</Parent>
<Architectures>arm64;x64</Architectures>
<Versions>8;9;10;11;12;13</Versions>
<Versions>10;11;12;13;14</Versions>
</RuntimeGroup>

<!-- linux mint includes major version in Include because Parent is different for each major -->
Expand Down
48 changes: 20 additions & 28 deletions src/libraries/Native/build-native.sh
Original file line number Diff line number Diff line change
Expand Up @@ -104,57 +104,49 @@ elif [[ "$__TargetOS" == Android && -z "$ROOTFS_DIR" ]]; then
exit 1
fi
elif [[ "$__TargetOS" == iOSSimulator ]]; then
__CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs"
# set default iOS simulator deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs"
if [[ "$__BuildArch" == x64 ]]; then
# set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11)
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
elif [[ "$__BuildArch" == x86 ]]; then
# set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11)
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"i386\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"i386\" $__CMakeArgs"
elif [[ "$__BuildArch" == arm64 ]]; then
# set default iOS device deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_SYSROOT=iphonesimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
else
echo "Error: Unknown iOSSimulator architecture $__BuildArch."
exit 1
fi
elif [[ "$__TargetOS" == iOS ]]; then
__CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs"
# set default iOS device deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS -DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs"
if [[ "$__BuildArch" == arm64 ]]; then
# set default iOS device deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
elif [[ "$__BuildArch" == arm ]]; then
# set default iOS device deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_SYSROOT=iphoneos -DCMAKE_OSX_DEPLOYMENT_TARGET=8.0 -DCMAKE_OSX_ARCHITECTURES=\"armv7;armv7s\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"armv7;armv7s\" $__CMakeArgs"
else
echo "Error: Unknown iOS architecture $__BuildArch."
exit 1
fi
elif [[ "$__TargetOS" == tvOSSimulator ]]; then
__CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS $__CMakeArgs"
# set default tvOS device deployment target
# keep in sync with tvOSVersionMin in src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 $__CMakeArgs"
# set default tvOS simulator deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs"
if [[ "$__BuildArch" == x64 ]]; then
__CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs"
elif [[ "$__BuildArch" == arm64 ]]; then
__CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
else
echo "Error: Unknown tvOSSimulator architecture $__BuildArch."
exit 1
fi
elif [[ "$__TargetOS" == tvOS ]]; then
__CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS $__CMakeArgs"
# set default tvOS device deployment target
# keep in sync with tvOSVersionMin in src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_OSX_DEPLOYMENT_TARGET=9.0 $__CMakeArgs"
# set default tvOS device deployment target
# keep in sync with src/mono/Directory.Build.props
__CMakeArgs="-DCMAKE_SYSTEM_NAME=tvOS -DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_DEPLOYMENT_TARGET=10.0 $__CMakeArgs"
if [[ "$__BuildArch" == arm64 ]]; then
__CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
__CMakeArgs="-DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs"
else
echo "Error: Unknown tvOS architecture $__BuildArch."
exit 1
Expand Down
4 changes: 2 additions & 2 deletions src/mono/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

<PropertyGroup>
<!-- Minimum target OS version, keep in sync with src/libraries/Native/build-native.sh -->
<iOSVersionMin>8.0</iOSVersionMin>
<tvOSVersionMin>9.0</tvOSVersionMin>
<iOSVersionMin>10.0</iOSVersionMin>
<tvOSVersionMin>10.0</tvOSVersionMin>
<watchOSVersionMin>2.0</watchOSVersionMin>
<watchOS64_32VersionMin>5.1</watchOS64_32VersionMin>
<macOSVersionMin>10.13</macOSVersionMin>
Expand Down
47 changes: 34 additions & 13 deletions src/mono/mono/eglib/goutput.c
Original file line number Diff line number Diff line change
Expand Up @@ -322,42 +322,63 @@ default_stderr_handler (const gchar *message)
}


#elif defined(HOST_IOS)
#include <asl.h>
#elif defined(HOST_IOS) || defined(HOST_TVOS) || defined(HOST_WATCHOS) || defined(HOST_MACCAT)
#include <os/log.h>

static int
to_asl_priority (GLogLevelFlags log_level)
to_os_log_priority (GLogLevelFlags log_level)
{
switch (log_level & G_LOG_LEVEL_MASK)
{
case G_LOG_LEVEL_ERROR: return ASL_LEVEL_CRIT;
case G_LOG_LEVEL_CRITICAL: return ASL_LEVEL_ERR;
case G_LOG_LEVEL_WARNING: return ASL_LEVEL_WARNING;
case G_LOG_LEVEL_MESSAGE: return ASL_LEVEL_NOTICE;
case G_LOG_LEVEL_INFO: return ASL_LEVEL_INFO;
case G_LOG_LEVEL_DEBUG: return ASL_LEVEL_DEBUG;
case G_LOG_LEVEL_ERROR: return OS_LOG_TYPE_ERROR;
case G_LOG_LEVEL_CRITICAL: return OS_LOG_TYPE_ERROR;
case G_LOG_LEVEL_WARNING: return OS_LOG_TYPE_DEFAULT;
case G_LOG_LEVEL_MESSAGE: return OS_LOG_TYPE_DEFAULT;
case G_LOG_LEVEL_INFO: return OS_LOG_TYPE_DEFAULT;
case G_LOG_LEVEL_DEBUG: return OS_LOG_TYPE_DEFAULT;
}
return ASL_LEVEL_ERR;
return OS_LOG_TYPE_ERROR;
}

static const char *
to_log_level_name (GLogLevelFlags log_level)
{
switch (log_level & G_LOG_LEVEL_MASK)
{
case G_LOG_LEVEL_ERROR: return "error";
case G_LOG_LEVEL_CRITICAL: return "critical";
case G_LOG_LEVEL_WARNING: return "warning";
case G_LOG_LEVEL_MESSAGE: return "message";
case G_LOG_LEVEL_INFO: return "info";
case G_LOG_LEVEL_DEBUG: return "debug";
}
return "unknown";
}

// keep in sync with mono_log_write_os_log
void
g_log_default_handler (const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data)
{
asl_log (NULL, NULL, to_asl_priority (log_level), "%s", message);
os_log_with_type (OS_LOG_DEFAULT, to_os_log_priority (log_level), "%{public}s%{public}s%{public}s: %{public}s",
log_domain != NULL ? log_domain : "",
log_domain != NULL ? ": " : "",
to_log_level_name(log_level),
message);

if (log_level & fatal)
g_assert_abort ();
}

static void
default_stdout_handler (const gchar *message)
{
asl_log (NULL, NULL, ASL_LEVEL_WARNING, "%s", message);
os_log (OS_LOG_DEFAULT, "%{public}s", message);
}

static void
default_stderr_handler (const gchar *message)
{
asl_log (NULL, NULL, ASL_LEVEL_WARNING, "%s", message);
os_log_error (OS_LOG_DEFAULT, "%{public}s", message);
}

#else
Expand Down
Loading