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 -c ") endif(CLR_CMAKE_HOST_OS STREQUAL Darwin) -if(CLR_CMAKE_HOST_OS STREQUAL iOS) +if(CLR_CMAKE_HOST_OS STREQUAL iOS OR CLR_CMAKE_HOST_OS STREQUAL iOSSimulator) set(CLR_CMAKE_HOST_UNIX 1) set(CLR_CMAKE_HOST_IOS 1) if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") @@ -102,9 +102,9 @@ if(CLR_CMAKE_HOST_OS STREQUAL iOS) else() clr_unknown_arch() endif() -endif(CLR_CMAKE_HOST_OS STREQUAL iOS) +endif(CLR_CMAKE_HOST_OS STREQUAL iOS OR CLR_CMAKE_HOST_OS STREQUAL iOSSimulator) -if(CLR_CMAKE_HOST_OS STREQUAL tvOS) +if(CLR_CMAKE_HOST_OS STREQUAL tvOS OR CLR_CMAKE_HOST_OS STREQUAL tvOSSimulator) set(CLR_CMAKE_HOST_UNIX 1) set(CLR_CMAKE_HOST_TVOS 1) if(CMAKE_OSX_ARCHITECTURES MATCHES "x86_64") @@ -114,7 +114,7 @@ if(CLR_CMAKE_HOST_OS STREQUAL tvOS) else() clr_unknown_arch() endif() -endif(CLR_CMAKE_HOST_OS STREQUAL tvOS) +endif(CLR_CMAKE_HOST_OS STREQUAL tvOS OR CLR_CMAKE_HOST_OS STREQUAL tvOSSimulator) if(CLR_CMAKE_HOST_OS STREQUAL Android) set(CLR_CMAKE_HOST_UNIX 1) @@ -300,20 +300,20 @@ if(CLR_CMAKE_TARGET_OS STREQUAL Darwin) set(CLR_CMAKE_TARGET_OSX 1) endif(CLR_CMAKE_TARGET_OS STREQUAL Darwin) -if(CLR_CMAKE_TARGET_OS STREQUAL iOS) +if(CLR_CMAKE_TARGET_OS STREQUAL iOS OR CLR_CMAKE_TARGET_OS STREQUAL iOSSimulator) set(CLR_CMAKE_TARGET_UNIX 1) set(CLR_CMAKE_TARGET_IOS 1) -endif(CLR_CMAKE_TARGET_OS STREQUAL iOS) +endif(CLR_CMAKE_TARGET_OS STREQUAL iOS OR CLR_CMAKE_TARGET_OS STREQUAL iOSSimulator) if(CLR_CMAKE_TARGET_OS STREQUAL MacCatalyst) set(CLR_CMAKE_TARGET_UNIX 1) set(CLR_CMAKE_TARGET_MACCATALYST 1) endif(CLR_CMAKE_TARGET_OS STREQUAL MacCatalyst) -if(CLR_CMAKE_TARGET_OS STREQUAL tvOS) +if(CLR_CMAKE_TARGET_OS STREQUAL tvOS OR CLR_CMAKE_TARGET_OS STREQUAL tvOSSimulator) set(CLR_CMAKE_TARGET_UNIX 1) set(CLR_CMAKE_TARGET_TVOS 1) -endif(CLR_CMAKE_TARGET_OS STREQUAL tvOS) +endif(CLR_CMAKE_TARGET_OS STREQUAL tvOS OR CLR_CMAKE_TARGET_OS STREQUAL tvOSSimulator) if(CLR_CMAKE_TARGET_OS STREQUAL FreeBSD) set(CLR_CMAKE_TARGET_UNIX 1) diff --git a/eng/native/init-distro-rid.sh b/eng/native/init-distro-rid.sh index 9c0092a22bce2..f71aa8640b160 100644 --- a/eng/native/init-distro-rid.sh +++ b/eng/native/init-distro-rid.sh @@ -174,8 +174,12 @@ initDistroRidGlobal() distroRid="maccatalyst-$buildArch" elif [ "$targetOs" = "tvOS" ]; then distroRid="tvos-$buildArch" + elif [ "$targetOs" = "tvOSSimulator" ]; then + distroRid="tvossimulator-$buildArch" elif [ "$targetOs" = "iOS" ]; then distroRid="ios-$buildArch" + elif [ "$targetOs" = "iOSSimulator" ]; then + distroRid="iossimulator-$buildArch" elif [ "$targetOs" = "Android" ]; then distroRid="android-$buildArch" elif [ "$targetOs" = "Browser" ]; then diff --git a/eng/pipelines/common/platform-matrix.yml b/eng/pipelines/common/platform-matrix.yml index 4f20b917874bb..f298ed8a1431b 100644 --- a/eng/pipelines/common/platform-matrix.yml +++ b/eng/pipelines/common/platform-matrix.yml @@ -385,18 +385,39 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} -# tvOS x64 +# tvOS arm64 -- ${{ if containsValue(parameters.platforms, 'tvOS_x64') }}: +- ${{ if containsValue(parameters.platforms, 'tvOS_arm64') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: tvOS + archType: arm64 + targetRid: tvos-arm64 + platform: tvOS_arm64 + jobParameters: + runtimeFlavor: mono + stagedBuild: ${{ parameters.stagedBuild }} + buildConfig: ${{ parameters.buildConfig }} + ${{ if eq(parameters.passPlatforms, true) }}: + platforms: ${{ parameters.platforms }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + ${{ insert }}: ${{ parameters.jobParameters }} + +# tvOS Simulator x64 + +- ${{ if containsValue(parameters.platforms, 'tvOSSimulator_x64') }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: tvOSSimulator archType: x64 - targetRid: tvos-x64 - platform: tvOS_x64 + targetRid: tvossimulator-x64 + platform: tvOSSimulatorim_x64 jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} @@ -406,18 +427,18 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} -# tvOS arm64 +# tvOS Simulator arm64 -- ${{ if containsValue(parameters.platforms, 'tvOS_arm64') }}: +- ${{ if containsValue(parameters.platforms, 'tvOSSimulator_arm64') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} - osGroup: tvOS + osGroup: tvOSSimulator archType: arm64 - targetRid: tvos-arm64 - platform: tvOS_arm64 + targetRid: tvossimulator-arm64 + platform: tvOSSimulator_arm64 jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} @@ -427,18 +448,18 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} -# iOS x64 +# iOS arm -- ${{ if containsValue(parameters.platforms, 'iOS_x64') }}: +- ${{ if containsValue(parameters.platforms, 'iOS_arm') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: iOS - archType: x64 - targetRid: ios-x64 - platform: iOS_x64 + archType: arm + targetRid: ios-arm + platform: iOS_arm jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} @@ -448,18 +469,18 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} -# iOS x86 +# iOS arm64 -- ${{ if containsValue(parameters.platforms, 'iOS_x86') }}: +- ${{ if containsValue(parameters.platforms, 'iOS_arm64') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} osGroup: iOS - archType: x86 - targetRid: ios-x86 - platform: iOS_x86 + archType: arm64 + targetRid: ios-arm64 + platform: iOS_arm64 jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} @@ -467,21 +488,20 @@ jobs: ${{ if eq(parameters.passPlatforms, true) }}: platforms: ${{ parameters.platforms }} helixQueueGroup: ${{ parameters.helixQueueGroup }} - managedTestBuildOsGroup: OSX ${{ insert }}: ${{ parameters.jobParameters }} -# iOS arm +# iOS Simulator x64 -- ${{ if containsValue(parameters.platforms, 'iOS_arm') }}: +- ${{ if containsValue(parameters.platforms, 'iOSSimulator_x64') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} - osGroup: iOS - archType: arm - targetRid: ios-arm - platform: iOS_arm + osGroup: iOSSimulator + archType: x64 + targetRid: iossimulator-x64 + platform: iOSSimulator_x64 jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} @@ -491,18 +511,40 @@ jobs: helixQueueGroup: ${{ parameters.helixQueueGroup }} ${{ insert }}: ${{ parameters.jobParameters }} -# iOS arm64 +# iOS Simulator x86 -- ${{ if containsValue(parameters.platforms, 'iOS_arm64') }}: +- ${{ if containsValue(parameters.platforms, 'iOSSimulator_x86') }}: - template: xplat-setup.yml parameters: jobTemplate: ${{ parameters.jobTemplate }} helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} variables: ${{ parameters.variables }} - osGroup: iOS + osGroup: iOSSimulator + archType: x86 + targetRid: iossimulator-x86 + platform: iOSsimulator_x86 + jobParameters: + runtimeFlavor: mono + stagedBuild: ${{ parameters.stagedBuild }} + buildConfig: ${{ parameters.buildConfig }} + ${{ if eq(parameters.passPlatforms, true) }}: + platforms: ${{ parameters.platforms }} + helixQueueGroup: ${{ parameters.helixQueueGroup }} + managedTestBuildOsGroup: OSX + ${{ insert }}: ${{ parameters.jobParameters }} + +# iOS Simulator arm64 + +- ${{ if containsValue(parameters.platforms, 'iOSSimulator_arm64') }}: + - template: xplat-setup.yml + parameters: + jobTemplate: ${{ parameters.jobTemplate }} + helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }} + variables: ${{ parameters.variables }} + osGroup: iOSSimulator archType: arm64 - targetRid: ios-arm64 - platform: iOS_arm64 + targetRid: iossimulator-arm64 + platform: iOSSimulator_arm64 jobParameters: runtimeFlavor: mono stagedBuild: ${{ parameters.stagedBuild }} diff --git a/eng/pipelines/common/templates/runtimes/build-test-job.yml b/eng/pipelines/common/templates/runtimes/build-test-job.yml index 14d17b0849b5b..50de94ee79c7d 100644 --- a/eng/pipelines/common/templates/runtimes/build-test-job.yml +++ b/eng/pipelines/common/templates/runtimes/build-test-job.yml @@ -116,7 +116,7 @@ jobs: artifactName: '$(coreClrProductArtifactName)' displayName: 'CoreCLR product build' - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h @@ -126,7 +126,7 @@ jobs: - script: $(Build.SourcesDirectory)/src/tests/build$(scriptExt) allTargets skipnative skipgeneratelayout skiptestwrappers $(buildConfig) $(archType) $(crossArg) $(priorityArg) ci $(librariesOverrideArg) displayName: Build managed test components - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/common/xplat-setup.yml b/eng/pipelines/common/xplat-setup.yml index 7649977d5bd81..6fc1b7b746a2e 100644 --- a/eng/pipelines/common/xplat-setup.yml +++ b/eng/pipelines/common/xplat-setup.yml @@ -120,7 +120,7 @@ jobs: queue: BuildPool.Ubuntu.1604.Amd64 # OSX Build Pool (we don't have on-prem OSX BuildPool - ${{ if in(parameters.osGroup, 'OSX', 'MacCatalyst', 'iOS', 'tvOS') }}: + ${{ if in(parameters.osGroup, 'OSX', 'MacCatalyst', 'iOS', 'iOSSimulator', 'tvOS', 'tvOSSimulator') }}: vmImage: 'macOS-10.15' # Official Build Windows Pool diff --git a/eng/pipelines/coreclr/templates/build-job.yml b/eng/pipelines/coreclr/templates/build-job.yml index 349cdfd0bb215..d857a6fd37595 100644 --- a/eng/pipelines/coreclr/templates/build-job.yml +++ b/eng/pipelines/coreclr/templates/build-job.yml @@ -181,7 +181,7 @@ jobs: continueOnError: false condition: and(succeeded(), in(variables['SignType'], 'real', 'test')) - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h @@ -200,7 +200,7 @@ jobs: - script: set __TestIntermediateDir=int&&$(Build.SourcesDirectory)/src/coreclr/build-runtime$(scriptExt) $(buildConfig) $(archType) -ci $(ninjaArg) $(enforcePgoArg) $(pgoInstrumentArg) $(officialBuildIdArg) $(clrInterpreterBuildArg) displayName: Build CoreCLR Runtime - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/installer/jobs/base-job.yml b/eng/pipelines/installer/jobs/base-job.yml index 5941160fbdb32..706774485917b 100644 --- a/eng/pipelines/installer/jobs/base-job.yml +++ b/eng/pipelines/installer/jobs/base-job.yml @@ -415,7 +415,7 @@ jobs: displayName: Build and Package continueOnError: ${{ and(eq(variables.SkipTests, false), eq(parameters.shouldContinueOnError, true)) }} - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/libraries/build-job.yml b/eng/pipelines/libraries/build-job.yml index 9d26ad7a4af06..ee0c0fc938f69 100644 --- a/eng/pipelines/libraries/build-job.yml +++ b/eng/pipelines/libraries/build-job.yml @@ -96,7 +96,7 @@ jobs: $(_additionalBuildArguments) displayName: Restore and Build Product - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/libraries/helix-queues-setup.yml b/eng/pipelines/libraries/helix-queues-setup.yml index 51d41c9e6e5c9..8b0f58894cd4e 100644 --- a/eng/pipelines/libraries/helix-queues-setup.yml +++ b/eng/pipelines/libraries/helix-queues-setup.yml @@ -106,7 +106,7 @@ jobs: - Windows.10.Amd64.Android.Open # iOS x64/x86 - - ${{ if in(parameters.platform, 'iOS_x64', 'iOS_x86') }}: + - ${{ if in(parameters.platform, 'iOSSimulator_x64', 'iOSSimulator_x86') }}: - OSX.1015.Amd64.Open # windows x64 diff --git a/eng/pipelines/mono/templates/build-job.yml b/eng/pipelines/mono/templates/build-job.yml index 6d2536cfc480f..308abed987e91 100644 --- a/eng/pipelines/mono/templates/build-job.yml +++ b/eng/pipelines/mono/templates/build-job.yml @@ -76,9 +76,15 @@ jobs: - ${{ if eq(parameters.osGroup, 'tvOS') }}: - name: osOverride value: -os tvOS + - ${{ if eq(parameters.osGroup, 'tvOSSimulator') }}: + - name: osOverride + value: -os tvOSSimulator - ${{ if eq(parameters.osGroup, 'iOS') }}: - name: osOverride value: -os iOS + - ${{ if eq(parameters.osGroup, 'iOSSimulator') }}: + - name: osOverride + value: -os iOSSimulator - ${{ if eq(parameters.osGroup, 'Android') }}: - name: osOverride value: -os Android @@ -127,7 +133,7 @@ jobs: artifact: Mono_Offsets_${{monoCrossAOTTargetOS}} path: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h @@ -141,7 +147,7 @@ jobs: - script: build$(scriptExt) -subset mono$(msCorDbi) -c $(buildConfig) -arch $(archType) $(osOverride) -ci $(officialBuildIdArg) $(aotCrossParameter) $(llvmParameter) $(ninjaArg) displayName: Build product - - ${{ if in(parameters.osGroup, 'OSX', 'iOS','tvOS') }}: + - ${{ if in(parameters.osGroup, 'OSX', 'iOS', 'tvOS') }}: - script: | du -sh $(Build.SourcesDirectory)/* df -h diff --git a/eng/pipelines/mono/templates/generate-offsets.yml b/eng/pipelines/mono/templates/generate-offsets.yml index ff3b3e9d70ca7..cbb05aaafff99 100644 --- a/eng/pipelines/mono/templates/generate-offsets.yml +++ b/eng/pipelines/mono/templates/generate-offsets.yml @@ -1,6 +1,7 @@ parameters: buildConfig: 'Debug' osGroup: '' + osSubGroup: '' platform: '' container: '' timeoutInMinutes: '' @@ -15,6 +16,7 @@ jobs: parameters: buildConfig: ${{ parameters.buildConfig }} osGroup: ${{ parameters.osGroup }} + osSubGroup: ${{ parameters.osSubGroup }} helixType: 'build/product/' enableMicrobuild: true pool: ${{ parameters.pool }} @@ -22,8 +24,8 @@ jobs: dependOnEvaluatePaths: ${{ parameters.dependOnEvaluatePaths }} # Compute job name from template parameters - name: ${{ format('mono_{0}_offsets', parameters.osGroup) }} - displayName: ${{ format('Mono {0} AOT offsets', parameters.osGroup) }} + name: ${{ format('mono_{0}{1}_offsets', parameters.osGroup, parameters.osSubGroup) }} + displayName: ${{ format('Mono {0}{1} AOT offsets', parameters.osGroup, parameters.osSubGroup) }} # Run all steps in the container. # Note that the containers are defined in platform-matrix.yml @@ -35,6 +37,8 @@ jobs: variables: - name: osGroup value: ${{ parameters.osGroup }} + - name: osSubGroup + value: ${{ parameters.osSubGroup }} - name: officialBuildIdArg value: '' - ${{ if and(eq(variables['System.TeamProject'], 'internal'), ne(variables['Build.Reason'], 'PullRequest')) }}: @@ -80,13 +84,13 @@ jobs: displayName: Upload offset files inputs: targetPath: '$(Build.SourcesDirectory)/artifacts/obj/mono/offsetfiles' - artifactName: 'Mono_Offsets_$(osGroup)' + artifactName: 'Mono_Offsets_$(osGroup)$(osSubGroup)' # Publish Logs - task: PublishPipelineArtifact@1 displayName: Publish Logs inputs: targetPath: $(Build.SourcesDirectory)/artifacts/log - artifactName: 'BuildLogs_Mono_Offsets_$(osGroup)' + artifactName: 'BuildLogs_Mono_Offsets_$(osGroup)$(osSubGroup)' continueOnError: true condition: always() diff --git a/eng/pipelines/runtime-official.yml b/eng/pipelines/runtime-official.yml index 8210073c0e2f5..8205661ba4e4b 100644 --- a/eng/pipelines/runtime-official.yml +++ b/eng/pipelines/runtime-official.yml @@ -105,10 +105,12 @@ stages: - Android_arm64 - MacCatalyst_x64 - MacCatalyst_arm64 - - tvOS_x64 + - tvOSSimulator_x64 + - tvOSSimulator_arm64 - tvOS_arm64 - - iOS_x64 - - iOS_x86 + - iOSSimulator_x64 + - iOSSimulator_x86 + - iOSSimulator_arm64 - iOS_arm - iOS_arm64 - OSX_x64 @@ -141,8 +143,8 @@ stages: platforms: - Android_x64 - Browser_wasm - - tvOS_x64 - - iOS_x64 + - tvOS_arm64 + - iOS_arm64 # # Build Mono release AOT cross-compilers diff --git a/eng/pipelines/runtime-staging.yml b/eng/pipelines/runtime-staging.yml index d398c0346dbf9..97a34f7f33d02 100644 --- a/eng/pipelines/runtime-staging.yml +++ b/eng/pipelines/runtime-staging.yml @@ -65,7 +65,7 @@ jobs: runtimeFlavor: mono platforms: - Android_x64 - - iOS_x64 + - iOSSimulator_x64 variables: # map dependencies variables to local variables - name: librariesContainsChange diff --git a/eng/pipelines/runtime.yml b/eng/pipelines/runtime.yml index e1f76c28c701b..e0d5603cba234 100644 --- a/eng/pipelines/runtime.yml +++ b/eng/pipelines/runtime.yml @@ -204,8 +204,8 @@ jobs: platforms: - Android_x64 - Browser_wasm - - tvOS_x64 - - iOS_x64 + - tvOS_arm64 + - iOS_arm64 jobParameters: condition: >- or( @@ -225,9 +225,9 @@ jobs: - Android_x86 - MacCatalyst_x64 - MacCatalyst_arm64 - - tvOS_x64 + - tvOSSimulator_x64 + - iOSSimulator_x86 - iOS_arm64 - - iOS_x86 - Linux_arm jobParameters: testGroup: innerloop diff --git a/eng/targetingpacks.targets b/eng/targetingpacks.targets index 22435626d3cd4..793f1954524fd 100644 --- a/eng/targetingpacks.targets +++ b/eng/targetingpacks.targets @@ -19,7 +19,7 @@ LatestRuntimeFrameworkVersion="$(ProductVersion)" RuntimeFrameworkName="$(LocalFrameworkOverrideName)" RuntimePackNamePatterns="$(LocalFrameworkOverrideName).Runtime.**RID**" - RuntimePackRuntimeIdentifiers="linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;ios-arm64;ios-arm;ios-x64;ios-x86;tvos-arm64;tvos-x64;maccatalyst-x64;maccatalyst-arm64;android-arm64;android-arm;android-x64;android-x86;browser-wasm;osx-arm64" + RuntimePackRuntimeIdentifiers="linux-arm;linux-arm64;linux-musl-arm64;linux-musl-x64;linux-x64;osx-x64;rhel.6-x64;tizen.4.0.0-armel;tizen.5.0.0-armel;win-arm;win-arm64;win-x64;win-x86;linux-musl-arm;ios-arm64;iossimulator-arm64;ios-arm;iossimulator-x64;iossimulator-x86;tvos-arm64;tvossimulator-arm64;tvossimulator-x64;maccatalyst-x64;maccatalyst-arm64;android-arm64;android-arm;android-x64;android-x86;browser-wasm;osx-arm64" TargetFramework="$(NetCoreAppCurrent)" TargetingPackName="$(LocalFrameworkOverrideName).Ref" TargetingPackVersion="$(ProductVersion)" diff --git a/eng/testing/AppleRunnerTemplate.sh b/eng/testing/AppleRunnerTemplate.sh index e02a9a1569717..5ec52b36c7ee3 100644 --- a/eng/testing/AppleRunnerTemplate.sh +++ b/eng/testing/AppleRunnerTemplate.sh @@ -18,12 +18,14 @@ fi if [[ "$TARGET_OS" == "MacCatalyst" ]]; then TARGET=maccatalyst; fi -if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "x86" ]]; then TARGET=ios-simulator-32; fi -if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "x64" ]]; then TARGET=ios-simulator-64; fi +if [[ "$TARGET_OS" == "iOSSimulator" && "$TARGET_ARCH" == "x86" ]]; then TARGET=ios-simulator-32; fi +if [[ "$TARGET_OS" == "iOSSimulator" && "$TARGET_ARCH" == "x64" ]]; then TARGET=ios-simulator-64; fi +if [[ "$TARGET_OS" == "iOSSimulator" && "$TARGET_ARCH" == "arm64" ]]; then TARGET=ios-simulator-64; fi if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "arm" ]]; then TARGET=ios-device; fi if [[ "$TARGET_OS" == "iOS" && "$TARGET_ARCH" == "arm64" ]]; then TARGET=ios-device; fi -if [[ "$TARGET_OS" == "tvOS" && "$TARGET_ARCH" == "x64" ]]; then TARGET=tvos-simulator; fi +if [[ "$TARGET_OS" == "tvOSSimulator" && "$TARGET_ARCH" == "x64" ]]; then TARGET=tvos-simulator; fi +if [[ "$TARGET_OS" == "tvOSSimulator" && "$TARGET_ARCH" == "arm64" ]]; then TARGET=tvos-simulator; fi if [[ "$TARGET_OS" == "tvOS" && "$TARGET_ARCH" == "arm64" ]]; then TARGET=tvos-device; fi # "Release" in SCHEME_SDK is what xcode produces (see "bool Optimized" property in AppleAppBuilderTask) diff --git a/eng/testing/tests.mobile.targets b/eng/testing/tests.mobile.targets index bef11b3fad99e..dad68387f86b5 100644 --- a/eng/testing/tests.mobile.targets +++ b/eng/testing/tests.mobile.targets @@ -3,7 +3,7 @@ $([MSBuild]::NormalizeDirectory('$(OutDir)', 'AppBundle')) $([MSBuild]::NormalizePath('$(BundleDir)', '$(RunScriptOutputName)')) - true + true V8 $(JSEngineArgs) --engine-arg=--stack-trace-limit=1000 @@ -119,7 +119,7 @@ - @@ -127,7 +127,7 @@ - - + @@ -282,7 +282,7 @@ AfterTargets="ComputeResolvedFilesToPublishList"> <_runnerFilesToPublish Include="$(AndroidTestRunnerDir)*" Condition="'$(TargetOS)' == 'Android'" /> - <_runnerFilesToPublish Include="$(AppleTestRunnerDir)*" Condition="'$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS'" /> + <_runnerFilesToPublish Include="$(AppleTestRunnerDir)*" Condition="'$(TargetOS)' == 'MacCatalyst' or '$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator'" /> <_runnerFilesToPublish Include="$(WasmTestRunnerDir)*" Condition="'$(TargetOS)' == 'Browser'" /> diff --git a/eng/testing/tests.targets b/eng/testing/tests.targets index d5ab901145464..1ad1ae7df0df3 100644 --- a/eng/testing/tests.targets +++ b/eng/testing/tests.targets @@ -2,7 +2,7 @@ RunnerTemplate.cmd RunnerTemplate.sh - AppleRunnerTemplate.sh + AppleRunnerTemplate.sh AndroidRunnerTemplate.sh WasmRunnerTemplate.sh diff --git a/eng/testing/xunit/xunit.console.targets b/eng/testing/xunit/xunit.console.targets index a3e7d2614a4f5..a88b08f613981 100644 --- a/eng/testing/xunit/xunit.console.targets +++ b/eng/testing/xunit/xunit.console.targets @@ -2,7 +2,7 @@ true testResults.xml - true + true diff --git a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj index 7e63e89f31ccf..854f4d454ebb9 100644 --- a/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj +++ b/src/installer/pkg/sfx/Microsoft.NETCore.App/monocrossaot.sfxproj @@ -5,8 +5,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 diff --git a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.compatibility.json b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.compatibility.json index b4b5f6a6ec2ee..a740ab7324fbc 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.compatibility.json +++ b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.compatibility.json @@ -3014,6 +3014,352 @@ "any", "base" ], + "iossimulator": [ + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator-arm64": [ + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator-x64": [ + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator-x86": [ + "iossimulator-x86", + "iossimulator", + "ios-x86", + "ios", + "unix-x86", + "unix", + "any", + "base" + ], + "iossimulator.10": [ + "iossimulator.10", + "iossimulator.9", + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.10-arm64": [ + "iossimulator.10-arm64", + "iossimulator.10", + "iossimulator.9-arm64", + "iossimulator.9", + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.10-x64": [ + "iossimulator.10-x64", + "iossimulator.10", + "iossimulator.9-x64", + "iossimulator.9", + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.10-x86": [ + "iossimulator.10-x86", + "iossimulator.10", + "iossimulator.9-x86", + "iossimulator.9", + "iossimulator.8-x86", + "iossimulator.8", + "iossimulator-x86", + "iossimulator", + "ios-x86", + "ios", + "unix-x86", + "unix", + "any", + "base" + ], + "iossimulator.11": [ + "iossimulator.11", + "iossimulator.10", + "iossimulator.9", + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.11-arm64": [ + "iossimulator.11-arm64", + "iossimulator.11", + "iossimulator.10-arm64", + "iossimulator.10", + "iossimulator.9-arm64", + "iossimulator.9", + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.11-x64": [ + "iossimulator.11-x64", + "iossimulator.11", + "iossimulator.10-x64", + "iossimulator.10", + "iossimulator.9-x64", + "iossimulator.9", + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.12": [ + "iossimulator.12", + "iossimulator.11", + "iossimulator.10", + "iossimulator.9", + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.12-arm64": [ + "iossimulator.12-arm64", + "iossimulator.12", + "iossimulator.11-arm64", + "iossimulator.11", + "iossimulator.10-arm64", + "iossimulator.10", + "iossimulator.9-arm64", + "iossimulator.9", + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.12-x64": [ + "iossimulator.12-x64", + "iossimulator.12", + "iossimulator.11-x64", + "iossimulator.11", + "iossimulator.10-x64", + "iossimulator.10", + "iossimulator.9-x64", + "iossimulator.9", + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.13": [ + "iossimulator.13", + "iossimulator.12", + "iossimulator.11", + "iossimulator.10", + "iossimulator.9", + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.13-arm64": [ + "iossimulator.13-arm64", + "iossimulator.13", + "iossimulator.12-arm64", + "iossimulator.12", + "iossimulator.11-arm64", + "iossimulator.11", + "iossimulator.10-arm64", + "iossimulator.10", + "iossimulator.9-arm64", + "iossimulator.9", + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.13-x64": [ + "iossimulator.13-x64", + "iossimulator.13", + "iossimulator.12-x64", + "iossimulator.12", + "iossimulator.11-x64", + "iossimulator.11", + "iossimulator.10-x64", + "iossimulator.10", + "iossimulator.9-x64", + "iossimulator.9", + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.8": [ + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.8-arm64": [ + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.8-x64": [ + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.8-x86": [ + "iossimulator.8-x86", + "iossimulator.8", + "iossimulator-x86", + "iossimulator", + "ios-x86", + "ios", + "unix-x86", + "unix", + "any", + "base" + ], + "iossimulator.9": [ + "iossimulator.9", + "iossimulator.8", + "iossimulator", + "ios", + "unix", + "any", + "base" + ], + "iossimulator.9-arm64": [ + "iossimulator.9-arm64", + "iossimulator.9", + "iossimulator.8-arm64", + "iossimulator.8", + "iossimulator-arm64", + "iossimulator", + "ios-arm64", + "ios", + "unix-arm64", + "unix", + "any", + "base" + ], + "iossimulator.9-x64": [ + "iossimulator.9-x64", + "iossimulator.9", + "iossimulator.8-x64", + "iossimulator.8", + "iossimulator-x64", + "iossimulator", + "ios-x64", + "ios", + "unix-x64", + "unix", + "any", + "base" + ], + "iossimulator.9-x86": [ + "iossimulator.9-x86", + "iossimulator.9", + "iossimulator.8-x86", + "iossimulator.8", + "iossimulator-x86", + "iossimulator", + "ios-x86", + "ios", + "unix-x86", + "unix", + "any", + "base" + ], "linux": [ "linux", "unix", @@ -5735,6 +6081,191 @@ "any", "base" ], + "tvossimulator": [ + "tvossimulator", + "tvos", + "unix", + "any", + "base" + ], + "tvossimulator-arm64": [ + "tvossimulator-arm64", + "tvossimulator", + "tvos-arm64", + "tvos", + "unix-arm64", + "unix", + "any", + "base" + ], + "tvossimulator-x64": [ + "tvossimulator-x64", + "tvossimulator", + "tvos-x64", + "tvos", + "unix-x64", + "unix", + "any", + "base" + ], + "tvossimulator.10": [ + "tvossimulator.10", + "tvossimulator", + "tvos", + "unix", + "any", + "base" + ], + "tvossimulator.10-arm64": [ + "tvossimulator.10-arm64", + "tvossimulator.10", + "tvossimulator-arm64", + "tvossimulator", + "tvos-arm64", + "tvos", + "unix-arm64", + "unix", + "any", + "base" + ], + "tvossimulator.10-x64": [ + "tvossimulator.10-x64", + "tvossimulator.10", + "tvossimulator-x64", + "tvossimulator", + "tvos-x64", + "tvos", + "unix-x64", + "unix", + "any", + "base" + ], + "tvossimulator.11": [ + "tvossimulator.11", + "tvossimulator.10", + "tvossimulator", + "tvos", + "unix", + "any", + "base" + ], + "tvossimulator.11-arm64": [ + "tvossimulator.11-arm64", + "tvossimulator.11", + "tvossimulator.10-arm64", + "tvossimulator.10", + "tvossimulator-arm64", + "tvossimulator", + "tvos-arm64", + "tvos", + "unix-arm64", + "unix", + "any", + "base" + ], + "tvossimulator.11-x64": [ + "tvossimulator.11-x64", + "tvossimulator.11", + "tvossimulator.10-x64", + "tvossimulator.10", + "tvossimulator-x64", + "tvossimulator", + "tvos-x64", + "tvos", + "unix-x64", + "unix", + "any", + "base" + ], + "tvossimulator.12": [ + "tvossimulator.12", + "tvossimulator.11", + "tvossimulator.10", + "tvossimulator", + "tvos", + "unix", + "any", + "base" + ], + "tvossimulator.12-arm64": [ + "tvossimulator.12-arm64", + "tvossimulator.12", + "tvossimulator.11-arm64", + "tvossimulator.11", + "tvossimulator.10-arm64", + "tvossimulator.10", + "tvossimulator-arm64", + "tvossimulator", + "tvos-arm64", + "tvos", + "unix-arm64", + "unix", + "any", + "base" + ], + "tvossimulator.12-x64": [ + "tvossimulator.12-x64", + "tvossimulator.12", + "tvossimulator.11-x64", + "tvossimulator.11", + "tvossimulator.10-x64", + "tvossimulator.10", + "tvossimulator-x64", + "tvossimulator", + "tvos-x64", + "tvos", + "unix-x64", + "unix", + "any", + "base" + ], + "tvossimulator.13": [ + "tvossimulator.13", + "tvossimulator.12", + "tvossimulator.11", + "tvossimulator.10", + "tvossimulator", + "tvos", + "unix", + "any", + "base" + ], + "tvossimulator.13-arm64": [ + "tvossimulator.13-arm64", + "tvossimulator.13", + "tvossimulator.12-arm64", + "tvossimulator.12", + "tvossimulator.11-arm64", + "tvossimulator.11", + "tvossimulator.10-arm64", + "tvossimulator.10", + "tvossimulator-arm64", + "tvossimulator", + "tvos-arm64", + "tvos", + "unix-arm64", + "unix", + "any", + "base" + ], + "tvossimulator.13-x64": [ + "tvossimulator.13-x64", + "tvossimulator.13", + "tvossimulator.12-x64", + "tvossimulator.12", + "tvossimulator.11-x64", + "tvossimulator.11", + "tvossimulator.10-x64", + "tvossimulator.10", + "tvossimulator-x64", + "tvossimulator", + "tvos-x64", + "tvos", + "unix-x64", + "unix", + "any", + "base" + ], "ubuntu": [ "ubuntu", "debian", @@ -7446,4 +7977,4 @@ "any", "base" ] -} +} \ No newline at end of file diff --git a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.json b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.json index b490944226e5b..9ce5b6033f61e 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.json +++ b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtime.json @@ -1252,6 +1252,149 @@ "ios.8-x86" ] }, + "iossimulator": { + "#import": [ + "ios" + ] + }, + "iossimulator-arm64": { + "#import": [ + "iossimulator", + "ios-arm64" + ] + }, + "iossimulator-x64": { + "#import": [ + "iossimulator", + "ios-x64" + ] + }, + "iossimulator-x86": { + "#import": [ + "iossimulator", + "ios-x86" + ] + }, + "iossimulator.10": { + "#import": [ + "iossimulator.9" + ] + }, + "iossimulator.10-arm64": { + "#import": [ + "iossimulator.10", + "iossimulator.9-arm64" + ] + }, + "iossimulator.10-x64": { + "#import": [ + "iossimulator.10", + "iossimulator.9-x64" + ] + }, + "iossimulator.10-x86": { + "#import": [ + "iossimulator.10", + "iossimulator.9-x86" + ] + }, + "iossimulator.11": { + "#import": [ + "iossimulator.10" + ] + }, + "iossimulator.11-arm64": { + "#import": [ + "iossimulator.11", + "iossimulator.10-arm64" + ] + }, + "iossimulator.11-x64": { + "#import": [ + "iossimulator.11", + "iossimulator.10-x64" + ] + }, + "iossimulator.12": { + "#import": [ + "iossimulator.11" + ] + }, + "iossimulator.12-arm64": { + "#import": [ + "iossimulator.12", + "iossimulator.11-arm64" + ] + }, + "iossimulator.12-x64": { + "#import": [ + "iossimulator.12", + "iossimulator.11-x64" + ] + }, + "iossimulator.13": { + "#import": [ + "iossimulator.12" + ] + }, + "iossimulator.13-arm64": { + "#import": [ + "iossimulator.13", + "iossimulator.12-arm64" + ] + }, + "iossimulator.13-x64": { + "#import": [ + "iossimulator.13", + "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": { + "#import": [ + "iossimulator.9", + "iossimulator.8-arm64" + ] + }, + "iossimulator.9-x64": { + "#import": [ + "iossimulator.9", + "iossimulator.8-x64" + ] + }, + "iossimulator.9-x86": { + "#import": [ + "iossimulator.9", + "iossimulator.8-x86" + ] + }, "linux": { "#import": [ "unix" @@ -2431,6 +2574,91 @@ "tvos.12-x64" ] }, + "tvossimulator": { + "#import": [ + "tvos" + ] + }, + "tvossimulator-arm64": { + "#import": [ + "tvossimulator", + "tvos-arm64" + ] + }, + "tvossimulator-x64": { + "#import": [ + "tvossimulator", + "tvos-x64" + ] + }, + "tvossimulator.10": { + "#import": [ + "tvossimulator" + ] + }, + "tvossimulator.10-arm64": { + "#import": [ + "tvossimulator.10", + "tvossimulator-arm64" + ] + }, + "tvossimulator.10-x64": { + "#import": [ + "tvossimulator.10", + "tvossimulator-x64" + ] + }, + "tvossimulator.11": { + "#import": [ + "tvossimulator.10" + ] + }, + "tvossimulator.11-arm64": { + "#import": [ + "tvossimulator.11", + "tvossimulator.10-arm64" + ] + }, + "tvossimulator.11-x64": { + "#import": [ + "tvossimulator.11", + "tvossimulator.10-x64" + ] + }, + "tvossimulator.12": { + "#import": [ + "tvossimulator.11" + ] + }, + "tvossimulator.12-arm64": { + "#import": [ + "tvossimulator.12", + "tvossimulator.11-arm64" + ] + }, + "tvossimulator.12-x64": { + "#import": [ + "tvossimulator.12", + "tvossimulator.11-x64" + ] + }, + "tvossimulator.13": { + "#import": [ + "tvossimulator.12" + ] + }, + "tvossimulator.13-arm64": { + "#import": [ + "tvossimulator.13", + "tvossimulator.12-arm64" + ] + }, + "tvossimulator.13-x64": { + "#import": [ + "tvossimulator.13", + "tvossimulator.12-x64" + ] + }, "ubuntu": { "#import": [ "debian" @@ -3259,4 +3487,4 @@ ] } } -} +} \ No newline at end of file diff --git a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtimeGroups.props b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtimeGroups.props index d0ea5972ea845..5d4a3edf9e956 100644 --- a/src/libraries/Microsoft.NETCore.Platforms/pkg/runtimeGroups.props +++ b/src/libraries/Microsoft.NETCore.Platforms/pkg/runtimeGroups.props @@ -91,6 +91,17 @@ 8;9;10;11;12;13 + + ios + x86 + 8;9;10 + + + ios + arm64;x64 + 8;9;10;11;12;13 + + ubuntu.14.04 @@ -210,6 +221,12 @@ 10;11;12;13 + + tvos + arm64;x64 + 10;11;12;13 + + debian x64;x86;arm diff --git a/src/libraries/Native/build-native.sh b/src/libraries/Native/build-native.sh index 0dc7c80d674fa..19dedb234f739 100755 --- a/src/libraries/Native/build-native.sh +++ b/src/libraries/Native/build-native.sh @@ -56,10 +56,10 @@ if [[ "$__BuildArch" == wasm ]]; then export CLR_CC=$(which emcc) export CLR_CXX=$(which em++) -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 && -z "$ROOTFS_DIR" ]]; then @@ -103,7 +103,7 @@ elif [[ "$__TargetOS" == Android && -z "$ROOTFS_DIR" ]]; then echo "Error: Unknown Android architecture $__BuildArch." exit 1 fi -elif [[ "$__TargetOS" == iOS ]]; then +elif [[ "$__TargetOS" == iOSSimulator ]]; then __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__CMakeArgs" if [[ "$__BuildArch" == x64 ]]; then # set default iOS simulator deployment target (8.0 is the minimum supported by Xcode 11) @@ -114,6 +114,16 @@ elif [[ "$__TargetOS" == iOS ]]; then # 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" 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" + else + echo "Error: Unknown iOSSimulator architecture $__BuildArch." + exit 1 + fi +elif [[ "$__TargetOS" == iOS ]]; then + __CMakeArgs="-DCMAKE_SYSTEM_NAME=iOS $__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" @@ -125,7 +135,7 @@ elif [[ "$__TargetOS" == iOS ]]; then echo "Error: Unknown iOS architecture $__BuildArch." exit 1 fi -elif [[ "$__TargetOS" == tvOS ]]; then +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 @@ -133,6 +143,17 @@ elif [[ "$__TargetOS" == tvOS ]]; then if [[ "$__BuildArch" == x64 ]]; then __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -DCMAKE_OSX_ARCHITECTURES=\"x86_64\" $__CMakeArgs" elif [[ "$__BuildArch" == arm64 ]]; then + __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvsimulator -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" + if [[ "$__BuildArch" == arm64 ]]; then __CMakeArgs="-DCMAKE_OSX_SYSROOT=appletvos -DCMAKE_OSX_ARCHITECTURES=\"arm64\" $__CMakeArgs" else echo "Error: Unknown tvOS architecture $__BuildArch." diff --git a/src/libraries/OSGroups.json b/src/libraries/OSGroups.json index 6abdb84c5192b..df367e07b744e 100644 --- a/src/libraries/OSGroups.json +++ b/src/libraries/OSGroups.json @@ -24,11 +24,21 @@ "Unix" ] }, + "iOSSimulator": { + "#import": [ + "iOS" + ] + }, "tvOS": { "#import": [ "Unix" ] }, + "tvOSSimulator": { + "#import": [ + "tvOS" + ] + }, "Android": { "#import": [ "Linux" diff --git a/src/libraries/pretest.proj b/src/libraries/pretest.proj index bfc8106891de4..176842f5d6284 100644 --- a/src/libraries/pretest.proj +++ b/src/libraries/pretest.proj @@ -19,7 +19,7 @@ - + diff --git a/src/libraries/sendtohelixhelp.proj b/src/libraries/sendtohelixhelp.proj index 6cbe9331f4a5d..5b14fbe068955 100644 --- a/src/libraries/sendtohelixhelp.proj +++ b/src/libraries/sendtohelixhelp.proj @@ -25,7 +25,7 @@ '$(Scenario)' == 'gcstress0xc_jitstress1' or '$(Scenario)' == 'gcstress0xc_jitstress2' or '$(Scenario)' == 'gcstress0xc_jitminopts_heapverify1'">01:30:00 - <_workItemTimeout Condition="'$(_workItemTimeout)' == '' and ('$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'Android')">00:30:00 + <_workItemTimeout Condition="'$(_workItemTimeout)' == '' and ('$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'iOSSimulator' or '$(TargetOS)' == 'tvOS' or '$(TargetOS)' == 'tvOSSimulator' or '$(TargetOS)' == 'Android')">00:30:00 <_workItemTimeout Condition="'$(Scenario)' == '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">00:45:00 <_workItemTimeout Condition="'$(Scenario)' != '' and '$(_workItemTimeout)' == '' and ('$(TargetArchitecture)' == 'arm64' or '$(TargetArchitecture)' == 'arm')">01:00:00 <_workItemTimeout Condition="'$(Scenario)' == 'BuildWasmApps' and '$(_workItemTimeout)' == ''">01:00:00 @@ -69,7 +69,7 @@ test/functional/packaging/ - + true @@ -167,6 +167,14 @@ ios-device ios-device + $(_workItemTimeout) + $(_workItemTimeout) + + + + + + ios-simulator-64 ios-simulator-64 ios-simulator-32 $(_workItemTimeout) @@ -202,7 +210,7 @@ - + @@ -256,7 +264,7 @@ - + @@ -294,8 +302,8 @@ - - + + diff --git a/src/libraries/tests.proj b/src/libraries/tests.proj index c1b6fdcf43afe..49a1103f23357 100644 --- a/src/libraries/tests.proj +++ b/src/libraries/tests.proj @@ -64,7 +64,7 @@ - + @@ -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'" />