diff --git a/Directory.Build.props b/Directory.Build.props
index e1f26b4fe1472..784fa37b6f2b7 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -17,7 +17,7 @@
Solaris
Linux
windows
- true
+ true
@@ -124,7 +124,9 @@
<_portableOS Condition="'$(_runtimeOS)' == 'Browser'">browser
<_portableOS Condition="'$(_runtimeOS)' == 'maccatalyst'">maccatalyst
<_portableOS Condition="'$(_runtimeOS)' == 'ios'">ios
+ <_portableOS Condition="'$(_runtimeOS)' == 'iOSSimulator'">iossimulator
<_portableOS Condition="'$(_runtimeOS)' == 'tvos'">tvos
+ <_portableOS Condition="'$(_runtimeOS)' == 'tvOSSimulator'">tvossimulator
<_portableOS Condition="'$(_runtimeOS)' == 'android'">android
<_runtimeOS Condition="$(_runtimeOS.StartsWith('tizen'))">linux
@@ -151,7 +153,7 @@
<_toolRuntimeRID Condition="'$(_runtimeOS)' == 'android' and $([MSBuild]::IsOSPlatform('OSX'))">osx-x64
- <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'tvos'">osx-x64
+ <_toolRuntimeRID Condition="'$(_runtimeOS)' == 'maccatalyst' or '$(_runtimeOS)' == 'ios' or '$(_runtimeOS)' == 'iOSSimulator' or '$(_runtimeOS)' == 'tvos' or '$(_runtimeOS)' == 'tvOSSimulator'">osx-x64
$(_toolRuntimeRID)
@@ -168,7 +170,9 @@
<_outputRID Condition="'$(TargetOS)' == 'Solaris'">solaris-$(TargetArchitecture)
<_outputRID Condition="'$(TargetOS)' == 'MacCatalyst'">maccatalyst-$(TargetArchitecture)
<_outputRID Condition="'$(TargetOS)' == 'iOS'">ios-$(TargetArchitecture)
+ <_outputRID Condition="'$(TargetOS)' == 'iOSSimulator'">iossimulator-$(TargetArchitecture)
<_outputRID Condition="'$(TargetOS)' == 'tvOS'">tvos-$(TargetArchitecture)
+ <_outputRID Condition="'$(TargetOS)' == 'tvOSSimulator'">tvossimulator-$(TargetArchitecture)
<_outputRID Condition="'$(TargetOS)' == 'Android'">android-$(TargetArchitecture)
<_outputRID Condition="'$(TargetOS)' == 'Browser'">browser-$(TargetArchitecture)
@@ -184,10 +188,10 @@
true
true
true
- true
- true
- true
- true
+ true
+ true
+ true
+ true
true
true
true
diff --git a/eng/Subsets.props b/eng/Subsets.props
index f93b8a821e577..82e0ccbfe414c 100644
--- a/eng/Subsets.props
+++ b/eng/Subsets.props
@@ -207,7 +207,7 @@
-
+
diff --git a/eng/build.sh b/eng/build.sh
index dc72e26d50092..50b91f7187634 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -28,8 +28,8 @@ usage()
echo " --help (-h) Print help and exit."
echo " --librariesConfiguration (-lc) Libraries build configuration: Debug or Release."
echo " [Default: Debug]"
- echo " --os Target operating system: windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, iOS, Android,"
- echo " Browser, NetBSD, illumos or Solaris."
+ echo " --os Target operating system: windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS,"
+ echo " tvOSSimulator, iOS, iOSSimulator, Android, Browser, NetBSD, illumos or Solaris."
echo " [Default: Your machine's OS.]"
echo " --projects Project or solution file(s) to build."
echo " --runtimeConfiguration (-rc) Runtime build configuration: Debug, Release or Checked."
@@ -266,8 +266,12 @@ while [[ $# > 0 ]]; do
os="MacCatalyst" ;;
tvos)
os="tvOS" ;;
+ tvossimulator)
+ os="tvOSSimulator" ;;
ios)
os="iOS" ;;
+ iossimulator)
+ os="iOSSimulator" ;;
android)
os="Android" ;;
browser)
@@ -278,7 +282,7 @@ while [[ $# > 0 ]]; do
os="Solaris" ;;
*)
echo "Unsupported target OS '$2'."
- echo "The allowed values are windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, iOS, Android, Browser, illumos and Solaris."
+ echo "The allowed values are windows, Linux, FreeBSD, OSX, MacCatalyst, tvOS, tvOSSimulator, iOS, iOSSimulator, Android, Browser, illumos and Solaris."
exit 1
;;
esac
diff --git a/eng/native/build-commons.sh b/eng/native/build-commons.sh
index 400a3f3d4226a..7a84e9136492c 100755
--- a/eng/native/build-commons.sh
+++ b/eng/native/build-commons.sh
@@ -462,10 +462,10 @@ fi
if [[ "$__BuildArch" == wasm ]]; then
# nothing to do here
true
-elif [[ "$__TargetOS" == iOS ]]; then
+elif [[ "$__TargetOS" == iOS || "$__TargetOS" == iOSSimulator ]]; then
# nothing to do here
true
-elif [[ "$__TargetOS" == tvOS ]]; then
+elif [[ "$__TargetOS" == tvOS || "$__TargetOS" == tvOSSimulator ]]; then
# nothing to do here
true
elif [[ "$__TargetOS" == Android ]]; then
diff --git a/eng/native/configureplatform.cmake b/eng/native/configureplatform.cmake
index 25d10118d922a..aa141437e190c 100644
--- a/eng/native/configureplatform.cmake
+++ b/eng/native/configureplatform.cmake
@@ -88,7 +88,7 @@ if(CLR_CMAKE_HOST_OS STREQUAL Darwin)
set(CMAKE_ASM_COMPILE_OBJECT "${CMAKE_C_COMPILER} -o
-
+
@@ -333,14 +333,14 @@
BuildInParallel="false" />
-
+
-
+
diff --git a/src/mono/mono.proj b/src/mono/mono.proj
index 4dde708922d85..d92fc0f7b972c 100644
--- a/src/mono/mono.proj
+++ b/src/mono/mono.proj
@@ -73,8 +73,10 @@
-
-
+
+
+
+
diff --git a/src/mono/monoaotcross.proj b/src/mono/monoaotcross.proj
index 2db55ced33b77..bd69e2e8eccdc 100644
--- a/src/mono/monoaotcross.proj
+++ b/src/mono/monoaotcross.proj
@@ -14,8 +14,8 @@
$(MonoAotTargets);Android-x64;Android-arm64;Android-x86;Android-arm
$(MonoAotTargets);Android-x64
$(MonoAotTargets);Browser-wasm
- $(MonoAotTargets);tvOS-x64;tvOS-arm64
- $(MonoAotTargets);iOS-x64;iOS-arm64;iOS-x86;iOS-arm
+ $(MonoAotTargets);tvOSSimulator-x64;tvOSSimulator-arm64;tvOS-arm64
+ $(MonoAotTargets);iOSSimulator-x64;iOSSimulator-arm64;iOSSimulator-x86;iOS-arm64;iOS-arm
@@ -31,8 +31,8 @@
- $(MonoAotTargetRid.Split('-')[0])
- $(MonoAotTargetRid.Split('-')[1])
+ $(MonoAotTargetRid.Substring(0,$(MonoAotTargetRid.LastIndexOf('-'))))
+ $(MonoAotTargetRid.Substring($([MSBuild]::Add(1, $(MonoAotTargetRid.LastIndexOf('-'))))))
-
+
diff --git a/src/mono/sample/iOS/Makefile b/src/mono/sample/iOS/Makefile
index 44f7b40dabe79..7d4a6c680fcc1 100644
--- a/src/mono/sample/iOS/Makefile
+++ b/src/mono/sample/iOS/Makefile
@@ -12,7 +12,7 @@ appbuilder:
$(DOTNET) build -c Debug $(TOOLS_DIR)/AppleAppBuilder/AppleAppBuilder.csproj
runtimepack:
- ../../../../build.sh Mono+Libs -os iOS -arch $(MONO_ARCH) -c $(MONO_CONFIG)
+ ../../../../build.sh Mono+Libs -os iOSSimulator -arch $(MONO_ARCH) -c $(MONO_CONFIG)
run: clean appbuilder
$(DOTNET) publish -c $(MONO_CONFIG) /p:TargetArchitecture=$(MONO_ARCH) \
diff --git a/src/mono/sample/iOS/Program.csproj b/src/mono/sample/iOS/Program.csproj
index f797af463084f..56f3124b3865c 100644
--- a/src/mono/sample/iOS/Program.csproj
+++ b/src/mono/sample/iOS/Program.csproj
@@ -4,9 +4,10 @@
bin
$(NetCoreAppToolCurrent)
iOS
- $(ArtifactsBinDir)microsoft.netcore.app.runtime.ios-$(TargetArchitecture)\$(Configuration)\runtimes\ios-$(TargetArchitecture)\
+ iOSSimulator
+ $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(TargetOS.ToLower())-$(TargetArchitecture)\$(Configuration)\runtimes\$(TargetOS.ToLower())-$(TargetArchitecture)\
false
- ios-$(TargetArchitecture)
+ $(TargetOS.ToLower())-$(TargetArchitecture)
true
Link
$(DefineConstants);CI_TEST
@@ -16,7 +17,7 @@
- $(ArtifactsBinDir)microsoft.netcore.app.runtime.ios-$(TargetArchitecture)\$(Configuration)
+ $(ArtifactsBinDir)microsoft.netcore.app.runtime.$(RuntimeIdentifier)\$(Configuration)
@@ -32,7 +33,7 @@
$(MSBuildThisFileDirectory)$(PublishDir)\app
- iPhone 11
+ iPhone 11
True
true
diff --git a/src/tasks/AotCompilerTask/MonoAOTCompiler.props b/src/tasks/AotCompilerTask/MonoAOTCompiler.props
index 852a5330a0e73..987162a2a0df1 100644
--- a/src/tasks/AotCompilerTask/MonoAOTCompiler.props
+++ b/src/tasks/AotCompilerTask/MonoAOTCompiler.props
@@ -1,5 +1,5 @@
-
+
@@ -10,7 +10,7 @@
-
+
diff --git a/src/tasks/AppleAppBuilder/AppleAppBuilder.cs b/src/tasks/AppleAppBuilder/AppleAppBuilder.cs
index d2e04a49598f7..d90bb75c714c0 100644
--- a/src/tasks/AppleAppBuilder/AppleAppBuilder.cs
+++ b/src/tasks/AppleAppBuilder/AppleAppBuilder.cs
@@ -131,7 +131,7 @@ public class AppleAppBuilderTask : Task
public override bool Execute()
{
Utils.Logger = Log;
- bool isDevice = Arch.Equals("arm64", StringComparison.InvariantCultureIgnoreCase) && TargetOS != TargetNames.MacCatalyst;
+ bool isDevice = (TargetOS == TargetNames.iOS || TargetOS == TargetNames.tvOS);
if (!File.Exists(Path.Combine(AppDir, MainLibraryFileName)))
{
diff --git a/src/tasks/AppleAppBuilder/TargetOS.cs b/src/tasks/AppleAppBuilder/TargetOS.cs
index 3fb54c975c88c..bd9c5c40602ae 100644
--- a/src/tasks/AppleAppBuilder/TargetOS.cs
+++ b/src/tasks/AppleAppBuilder/TargetOS.cs
@@ -4,6 +4,8 @@
internal class TargetNames
{
public const string iOS = "iOS";
+ public const string iOSsim = "iOSSimulator";
public const string tvOS = "tvOS";
+ public const string tvOSsim = "tvOSSimulator";
public const string MacCatalyst = "MacCatalyst";
}
diff --git a/src/tasks/AppleAppBuilder/Xcode.cs b/src/tasks/AppleAppBuilder/Xcode.cs
index 0435178116c50..dcba5f973e9c2 100644
--- a/src/tasks/AppleAppBuilder/Xcode.cs
+++ b/src/tasks/AppleAppBuilder/Xcode.cs
@@ -21,9 +21,15 @@ public Xcode(string target, string arch)
case TargetNames.iOS:
SysRoot = Utils.RunProcess("xcrun", "--sdk iphoneos --show-sdk-path");
break;
+ case TargetNames.iOSsim:
+ SysRoot = Utils.RunProcess("xcrun", "--sdk iphonesimulator --show-sdk-path");
+ break;
case TargetNames.tvOS:
SysRoot = Utils.RunProcess("xcrun", "--sdk appletvos --show-sdk-path");
break;
+ case TargetNames.tvOSsim:
+ SysRoot = Utils.RunProcess("xcrun", "--sdk appletvsimulator --show-sdk-path");
+ break;
default:
SysRoot = Utils.RunProcess("xcrun", "--sdk macosx --show-sdk-path");
break;
@@ -110,7 +116,7 @@ public string GenerateXCode(
}
string frameworks = "";
- if ((Target == TargetNames.iOS) || (Target == TargetNames.MacCatalyst))
+ if ((Target == TargetNames.iOS) || (Target == TargetNames.iOSsim) || (Target == TargetNames.MacCatalyst))
{
frameworks = "\"-framework GSS\"";
}
@@ -148,7 +154,24 @@ public string GenerateXCode(
File.WriteAllText(Path.Combine(binDir, "Info.plist"), plist);
File.WriteAllText(Path.Combine(binDir, "CMakeLists.txt"), cmakeLists);
- var targetName = (Target == TargetNames.MacCatalyst) ? "Darwin" : Target.ToString();
+ string targetName;
+ switch (Target)
+ {
+ case TargetNames.MacCatalyst:
+ targetName = "Darwin";
+ break;
+ case TargetNames.iOS:
+ case TargetNames.iOSsim:
+ targetName = "iOS";
+ break;
+ case TargetNames.tvOS:
+ case TargetNames.tvOSsim:
+ targetName = "tvOS";
+ break;
+ default:
+ targetName = Target.ToString();
+ break;
+ }
var deployTarget = (Target == TargetNames.MacCatalyst) ? " -DCMAKE_OSX_ARCHITECTURES=\"x86_64 arm64\"" : " -DCMAKE_OSX_DEPLOYMENT_TARGET=10.1";
var cmakeArgs = new StringBuilder();
cmakeArgs
@@ -215,11 +238,21 @@ public string BuildAppBundle(
args.Append(" -arch arm64")
.Append(" -sdk " + sdk);
break;
+ case TargetNames.iOSsim:
+ sdk = "iphonesimulator";
+ args.Append(" -arch arm64")
+ .Append(" -sdk " + sdk);
+ break;
case TargetNames.tvOS:
sdk = "appletvos";
args.Append(" -arch arm64")
.Append(" -sdk " + sdk);
break;
+ case TargetNames.tvOSsim:
+ sdk = "appletvsimulator";
+ args.Append(" -arch arm64")
+ .Append(" -sdk " + sdk);
+ break;
default:
sdk = "maccatalyst";
args.Append(" -scheme \"" + Path.GetFileNameWithoutExtension(xcodePrjPath) + "\"")
@@ -233,12 +266,12 @@ public string BuildAppBundle(
{
switch (Target)
{
- case TargetNames.iOS:
+ case TargetNames.iOSsim:
sdk = "iphonesimulator";
args.Append(" -arch x86_64")
.Append(" -sdk " + sdk);
break;
- case TargetNames.tvOS:
+ case TargetNames.tvOSsim:
sdk = "appletvsimulator";
args.Append(" -arch x86_64")
.Append(" -sdk " + sdk);
diff --git a/src/tasks/tasks.proj b/src/tasks/tasks.proj
index 17ea46bc58669..7aacd889c92a5 100644
--- a/src/tasks/tasks.proj
+++ b/src/tasks/tasks.proj
@@ -4,7 +4,7 @@
+ Condition="'$(TargetOS)' != 'MacCatalyst' and '$(TargetOS)' != 'iOS' and '$(TargetOS)' != 'iOSSimulator' and '$(TargetOS)' != 'tvOS' and '$(TargetOS)' != 'tvOSSimulator'" />