This adds support for generating Microsoft.NETCore.App.Runtime packs for ios-x64, ios-arm, and ios-arm64.
<PropertyGroup>
<DefaultSubsetCategories>libraries-installer-coreclr-mono</DefaultSubsetCategories>
- <DefaultSubsetCategories Condition="'$(TargetOS)' == 'iOS' or '$(TargetOS)' == 'Android'">libraries-mono</DefaultSubsetCategories>
+ <DefaultSubsetCategories Condition="'$(TargetOS)' == 'iOS'">libraries-installer-mono</DefaultSubsetCategories>
+ <DefaultSubsetCategories Condition="'$(TargetOS)' == 'Android'">libraries-mono</DefaultSubsetCategories>
<DefaultInstallerSubsets>corehost-managed-depproj-pkgproj-bundle-installers-test</DefaultInstallerSubsets>
+ <DefaultInstallerSubsets Condition="'$(TargetOS)' == 'iOS'">depproj-pkgproj</DefaultInstallerSubsets>
<!-- TODO: Split into multiple sets. -->
<DefaultLibrariesSubsets>all</DefaultLibrariesSubsets>
<DefaultCoreClrSubsets>runtime-linuxdac-corelib-nativecorelib-tools-packages</DefaultCoreClrSubsets>
</ItemGroup>
<ItemGroup Condition="$(_subsetCategory.Contains('installer')) and $(_subset.Contains('-depproj-'))">
- <DepprojProjectToBuild Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="R2RBinaries" BuildInParallel="false" />
+ <DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'CoreCLR'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="R2RBinaries" BuildInParallel="false" />
+ <DepprojProjectToBuild Condition="'$(RuntimeFlavor)' == 'Mono'" Include="$(InstallerProjectRoot)pkg\projects\**\*.depproj" SignPhase="Binaries" BuildInParallel="false" />
<ProjectToBuild Include="@(DepprojProjectToBuild)" />
</ItemGroup>
<CoreCLRCrossTargetComponentDirName Condition="'$(TargetArchitecture)' == 'arm' and '$(BuildArchitecture)' != 'arm' and '$(TargetsLinux)' == 'true'">x64</CoreCLRCrossTargetComponentDirName>
</PropertyGroup>
- <Target Name="ResolveCoreCLRFilesFromLocalBuild">
- <Error Condition="!Exists('$(CoreCLRArtifactsPath)')" Text="The CoreCLR artifacts path does not exist '$(CoreCLRArtifactsPath)'. The CoreCLR subset category must be built before building this project." />
+ <Target Name="ResolveRuntimeFilesFromLocalBuild">
+ <Error Condition="!Exists('$(CoreCLRArtifactsPath)') and '$(RuntimeFlavor)' == 'CoreCLR'" Text="The CoreCLR artifacts path does not exist '$(CoreCLRArtifactsPath)'. The CoreCLR subset category must be built before building this project." />
+ <Error Condition="!Exists('$(MonoArtifactsPath)') and '$(RuntimeFlavor)' == 'Mono'" Text="The Mono artifacts path does not exist '$(MonoArtifactsPath)'. The Mono subset category must be built before building this project." />
- <PropertyGroup>
+ <PropertyGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR'">
<CoreCLRArtifactsPath>$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)'))</CoreCLRArtifactsPath>
<!--
Even though CoreCLRSharedFrameworkDir is statically initialized, set it again in case the
<CoreCLRCrossTargetComponentDir
Condition="'$(CoreCLRCrossTargetComponentDirName)' != ''">$([MSBuild]::NormalizeDirectory('$(CoreCLRArtifactsPath)','$(CoreCLRCrossTargetComponentDirName)','sharedFramework'))</CoreCLRCrossTargetComponentDir>
</PropertyGroup>
- <ItemGroup>
- <CoreCLRFiles Include="$(CoreCLRSharedFrameworkDir)*.*" />
+ <PropertyGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
+ <MonoArtifactsPath>$([MSBuild]::NormalizeDirectory('$(MonoArtifactsPath)'))</MonoArtifactsPath>
+ </PropertyGroup>
+
+ <ItemGroup Condition="'$(RuntimeFlavor)' == 'CoreCLR'">
+ <RuntimeFiles Include="$(CoreCLRSharedFrameworkDir)*.*" />
<CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''" Include="$(CoreCLRCrossTargetComponentDir)*.*" IsNative="true" />
- <CoreCLRFiles Include="$(CoreCLRArtifactsPath)Redist/**/*.dll" />
- <CoreCLRFiles>
+ <RuntimeFiles Include="$(CoreCLRArtifactsPath)Redist/**/*.dll" />
+ <RuntimeFiles>
<IsNative>true</IsNative>
- </CoreCLRFiles>
+ </RuntimeFiles>
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)System.Private.CoreLib.dll"
Condition="Exists('$(CoreCLRArtifactsPath)System.Private.CoreLib.dll')" />
<_systemPrivateCoreLib Include="$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll"
Condition="Exists('$(CoreCLRArtifactsPath)IL/System.Private.CoreLib.dll') and '@(_systemPrivateCoreLib)' == ''" />
- <CoreCLRFiles Include="@(_systemPrivateCoreLib)" />
- <CoreCLRFiles
+ <RuntimeFiles Include="@(_systemPrivateCoreLib)" />
+ <RuntimeFiles
Include="
$(CoreCLRSharedFrameworkDir)PDB/*.pdb;
$(CoreCLRSharedFrameworkDir)PDB/*.dbg;
$(CoreCLRSharedFrameworkDir)PDB/*.dwarf" />
- <CoreCLRFiles
+ <RuntimeFiles
Include="$(CoreCLRArtifactsPath)PDB/System.Private.CoreLib.pdb;" />
- <CoreCLRFiles Condition="Exists('$(CoreCLRArtifactsPath)PDB/System.Private.CoreLib.ni.pdb')"
+ <RuntimeFiles Condition="Exists('$(CoreCLRArtifactsPath)PDB/System.Private.CoreLib.ni.pdb')"
Include="$(CoreCLRArtifactsPath)PDB/System.Private.CoreLib.ni.pdb" />
<CoreCLRCrossTargetFiles Condition="'$(CoreCLRCrossTargetComponentDir)' != ''"
Include="
<TargetPath>runtime/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native</TargetPath>
</CoreCLRCrossTargetFiles>
</ItemGroup>
+ <ItemGroup Condition="'$(RuntimeFlavor)' == 'Mono'">
+ <RuntimeFiles Include="$(MonoArtifactsPath)\*.*" />
+ <RuntimeFiles>
+ <IsNative>true</IsNative>
+ </RuntimeFiles>
- <Error Condition="'@(CoreCLRFiles)' == ''" Text="The CoreCLR subset category must be built before building this project." />
- </Target>
-
- <Target Name="ResolveMonoFilesFromLocalBuild">
- <Error Condition="!Exists('$(MonoArtifactsPath)')" Text="The Mono artifacts path does not exist '$(MonoArtifactsPath)'. The Mono subset category must be built before building this project." />
-
- <ItemGroup>
- <MonoFiles Include="$(MonoArtifactsPath)\*.*" />
+ <MonoCrossFiles Condition="'$(TargetOS)' == 'iOS'"
+ Include="$(MonoArtifactsPath)\cross\*.*" />
+ <MonoIncludeFiles Condition="'$(TargetOS)' == 'iOS'"
+ Include="$(MonoArtifactsPath)\include\**\*.*" />
</ItemGroup>
- <Error Condition="'@(MonoFiles)' == ''" Text="The Mono subset category must be built before building this project." />
+ <Error Condition="'@(RuntimeFiles)' == ''" Text="The $(RuntimeFlavor) subset category must be built before building this project." />
</Target>
<Target Name="EnsureLocalArtifactsExist">
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
osGroup: iOS
archType: arm
- platform: iOS_x64
+ platform: iOS_arm
jobParameters:
runtimeFlavor: mono
stagedBuild: ${{ parameters.stagedBuild }}
helixQueuesTemplate: ${{ parameters.helixQueuesTemplate }}
osGroup: iOS
archType: arm64
- platform: iOS_x64
+ platform: iOS_arm64
jobParameters:
runtimeFlavor: mono
stagedBuild: ${{ parameters.stagedBuild }}
$(CommonMSBuildArgs)
$(OfficialBuildArg)
+ - ${{ if eq(parameters.osGroup, 'iOS') }}:
+
+ - name: CommonMSBuildArgs
+ value: >-
+ /p:PortableBuild=true
+ /p:SkipTests=$(SkipTests)
+
+ - name: BaseJobBuildCommand
+ value: >-
+ $(Build.SourcesDirectory)/installer.sh --restore --build --ci --test
+ -configuration $(_BuildConfig)
+ -os ${{ parameters.osGroup }}
+ -arch ${{ parameters.archType }}
+ /p:StripSymbols=true
+ $(LiveOverridePathArgs)
+ $(CommonMSBuildArgs)
+ $(OfficialBuildArg)
+
- ${{ if eq(parameters.osGroup, 'Linux') }}:
# Preserve the NuGet authentication env vars into the Docker container.
- name: _PortableBuild
value: ${{ eq(parameters.osSubgroup, '') }}
- - name: _DisableCrossgen
- value: false
-
- ${{ if and(eq(parameters.osSubgroup, '_musl'), eq(parameters.osGroup, 'Linux')) }}:
# Set output RID manually: musl isn't properly detected. Make sure to also convert linux to
# lowercase for RID format. (Detection normally converts, but we're preventing it.)
value: >-
--restore --build --ci --test
/p:CrossBuild=${{ ne(parameters.crossrootfsDir, '') }}
- /p:DisableCrossgen=$(_DisableCrossgen)
/p:PortableBuild=$(_PortableBuild)
/p:SkipTests=$(SkipTests)
$(LiveOverridePathArgs)
- Windows_NT_arm
- Windows_NT_arm64
+ #
+ # Installer Build for platforms using Mono
+ #
+ - template: /eng/pipelines/installer/installer-matrix.yml
+ parameters:
+ jobParameters:
+ liveRuntimeBuildConfig: release
+ liveLibrariesBuildConfig: Release
+ isOfficialBuild: ${{ variables.isOfficialBuild }}
+ useOfficialAllConfigurations: false
+ buildFullPlatformManifest: false
+ runtimeFlavor: mono
+ platforms:
+ - iOS_arm
+ - iOS_arm64
+ - iOS_x64
+
- ${{ if eq(variables.isOfficialBuild, true) }}:
- template: /eng/pipelines/official/stages/publish.yml
parameters:
liveRuntimeBuildConfig: release
liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+- template: /eng/pipelines/installer/installer-matrix.yml
+ parameters:
+ buildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+ runtimeFlavor: mono
+ platforms:
+ - iOS_x64
+ - iOS_arm
+ - iOS_arm64
+ jobParameters:
+ liveRuntimeBuildConfig: release
+ liveLibrariesBuildConfig: ${{ variables.debugOnPrReleaseOnRolling }}
+
#
# Libraries Test Build
# Only when CoreCLR, Mono or Libraries is changed
<Target Name="GetFilesFromRuntime" Returns="@(RuntimeFiles)" DependsOnTargets="GetFilesFromCoreClr;GetFilesFromMono">
<ItemGroup>
- <RuntimeFiles Include="@(CoreCLRFiles)" Condition="'$(RuntimeFlavor)' != 'Mono'" />
- <RuntimeFiles Include="@(MonoFiles)" Condition="'$(RuntimeFlavor)' == 'Mono'" />
+ <RuntimeFiles Include="@(RuntimeFiles)" />
</ItemGroup>
</Target>
-->
<Target Name="GetFilesFromCoreCLR"
Condition="'$(RuntimeFlavor)' != 'Mono'"
- Returns="@(CoreCLRFiles)"
- DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild" />
+ Returns="@(RuntimeFiles)"
+ DependsOnTargets="ResolveRuntimeFilesFromLocalBuild" />
<Target Name="GetFilesFromMono"
Condition="'$(RuntimeFlavor)' == 'Mono'"
- Returns="@(MonoFiles)"
- DependsOnTargets="ResolveMonoFilesFromLocalBuild" />
+ Returns="@(RuntimeFiles)"
+ DependsOnTargets="ResolveRuntimeFilesFromLocalBuild" />
<Target Name="FilterReferenceFromRuntime"
AfterTargets="ResolveProjectReferences"
<OutputRid Condition="'$(TargetOS)' == 'OSX'">osx-$(TargetArchitecture)</OutputRid>
<OutputRid Condition="'$(TargetOS)' == 'Linux'">linux-$(TargetArchitecture)</OutputRid>
<OutputRid Condition="'$(TargetOS)' == 'FreeBSD'">freebsd-$(TargetArchitecture)</OutputRid>
+ <OutputRid Condition="'$(TargetOS)' == 'iOS'">ios-$(TargetArchitecture)</OutputRid>
</PropertyGroup>
<PropertyGroup>
<PropertyGroup>
<DisableCrossgen>false</DisableCrossgen>
+ <DisableCrossgen Condition="'$(RuntimeFlavor)' == 'Mono'">true</DisableCrossgen>
<!-- Disable cross-gen on FreeBSD for now. This can be revisited when we have full support. -->
<DisableCrossgen Condition="'$(TargetOS)'=='FreeBSD'">true</DisableCrossgen>
<OutputVersionBadge>$(AssetOutputPath)sharedfx_$(OutputRid)_$(Configuration)_version_badge.svg</OutputVersionBadge>
<PropertyGroup>
<TargetsWindows>false</TargetsWindows>
<TargetsOSX>false</TargetsOSX>
+ <TargetsiOS>false</TargetsiOS>
<TargetsLinux>false</TargetsLinux>
<TargetsUnix>false</TargetsUnix>
<TargetsUbuntu>false</TargetsUbuntu>
<TargetsUnix>true</TargetsUnix>
</PropertyGroup>
</When>
+ <When Condition="$(OutputRid.StartsWith('ios'))">
+ <PropertyGroup>
+ <TargetsiOS>true</TargetsiOS>
+ <TargetsUnix>true</TargetsUnix>
+ </PropertyGroup>
+ </When>
<When Condition="$(OutputRid.StartsWith('debian'))">
<PropertyGroup>
<TargetsDebian>true</TargetsDebian>
<LibPrefix Condition="'$(TargetOS)' != 'Windows_NT'">lib</LibPrefix>
<LibSuffix>.so</LibSuffix>
<LibSuffix Condition="'$(TargetOS)' == 'Windows_NT'">.dll</LibSuffix>
- <LibSuffix Condition="'$(TargetOS)' == 'OSX'">.dylib</LibSuffix>
+ <LibSuffix Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS'">.dylib</LibSuffix>
<StaticLibPrefix>lib</StaticLibPrefix>
<StaticLibSuffix>.a</StaticLibSuffix>
<StaticLibSuffix Condition="'$(TargetOS)' == 'Windows_NT'">.lib</StaticLibSuffix>
<CrossGenSymbolExtension>.map</CrossGenSymbolExtension>
<CrossGenSymbolExtension Condition="'$(TargetOS)' == 'Windows_NT'">.ni.pdb</CrossGenSymbolExtension>
<!-- OSX doesn't have crossgen symbols, yet -->
- <CrossGenSymbolExtension Condition="'$(TargetOS)' == 'OSX'"></CrossGenSymbolExtension>
+ <CrossGenSymbolExtension Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS'"></CrossGenSymbolExtension>
</PropertyGroup>
</Project>
<UsingTask TaskName="ReplaceFileContents" AssemblyFile="$(InstallerTasksAssemblyPath)"/>
<Target Name="InitPkg"
- Condition="'$(TargetOS)' == 'OSX'">
+ Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS'">
<MakeDir Condition="!Exists('$(PackagesIntermediateDir)')"
Directories="$(PackagesIntermediateDir)" />
</Target>
<Target Name="GeneratePkgs"
- Condition="'$(TargetOS)' == 'OSX'"
+ Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS'"
DependsOnTargets="GetInstallerBrandingNames;InitPkg">
<ItemGroup>
<OSXPackages Include="sharedframework">
</PropertyGroup>
<!--
+ For mobile targets, we do not need the host, so allow depproj's to opt
+ out and skip building.
+ -->
+ <Target Name="MobileSkipBuildProps"
+ Condition="'$(SkipBuildOnRuntimePackOnlyOS)' == 'true' and '$(TargetOS)' == 'iOS'"
+ BeforeTargets="GetSkipBuildProps">
+ <PropertyGroup>
+ <SkipBuild>true</SkipBuild>
+ </PropertyGroup>
+ </Target>
+
+ <!--
For any Dependency items with a VersionProp, set it to the property by that name given by the
version generation target. For any with a VersionFromProject, query the ProductVersion from that
project file and use it as the dependency's version.
<Project Sdk="Microsoft.NET.Sdk">
-
<PropertyGroup>
<VersionProp>AppHostVersion</VersionProp>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
</PropertyGroup>
<Import Project="$(MSBuildProjectName).props" />
-
</Project>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import
- Condition="'$(PackageTargetRuntime)' != ''"
+ Condition="'$(PackageTargetRuntime)' != '' and Exists('$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)')"
Project="$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)" />
</Project>
<InstallerName>dotnet-host</InstallerName>
<GenerateSharedFrameworkPart>true</GenerateSharedFrameworkPart>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
</PropertyGroup>
<Target Name="SetupHostSpecificWixBuild"
</ItemGroup>
</Target>
- <Import Condition="'$(PackageTargetRuntime)' != ''" Project="$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildProjectName).props" />
+ <Import
+ Condition="'$(PackageTargetRuntime)' != '' and Exists('$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildProjectName).props')"
+ Project="$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildProjectName).props" />
</Project>
<PropertyGroup>
<VersionProp>HostPolicyVersion</VersionProp>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
</PropertyGroup>
<ItemGroup>
</ItemGroup>
<Import Project="$(MSBuildProjectName).props" />
-
</Project>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import
- Condition="'$(PackageTargetRuntime)' != ''"
+ Condition="'$(PackageTargetRuntime)' != '' and Exists('$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)')"
Project="$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)" />
</Project>
<InstallerName>dotnet-hostfxr</InstallerName>
<GenerateSharedFrameworkPart>true</GenerateSharedFrameworkPart>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
</PropertyGroup>
<ItemGroup>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import
- Condition="'$(PackageTargetRuntime)' != ''"
+ Condition="'$(PackageTargetRuntime)' != '' and Exists('$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)')"
Project="$(MSBuildThisFileDirectory)runtime.$(TargetOS).$(MSBuildThisFile)" />
</Project>
<CoreCLRTargetOS Condition="'$(TargetsWindows)' == 'true'">Windows_NT</CoreCLRTargetOS>
<CoreCLRTargetOS Condition="'$(TargetsLinux)' == 'true'">Linux</CoreCLRTargetOS>
<CoreCLRTargetOS Condition="'$(TargetsOSX)' == 'true'">OSX</CoreCLRTargetOS>
+ <CoreCLRTargetOS Condition="'$(TargetsiOS)' == 'true'">iOS</CoreCLRTargetOS>
<CoreCLRTargetOS Condition="'$(TargetsFreeBSD)' == 'true'">FreeBSD</CoreCLRTargetOS>
<LibrariesTargetOS>$(CoreCLRTargetOS)</LibrariesTargetOS>
</PropertyGroup>
<PropertyGroup>
<FrameworkPackType>crossgen2</FrameworkPackType>
<BuildRidSpecificPacks>true</BuildRidSpecificPacks>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
</PropertyGroup>
<!--
<CrossArchSdkMsiInstallerArch Include="x64;x86" />
</ItemGroup>
+ <PropertyGroup>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
+ </PropertyGroup>
</Project>
\ No newline at end of file
<File Include="PackageOverrides.txt" TargetPath="data/" />
</ItemGroup>
+ <PropertyGroup>
+ <SkipBuildOnRuntimePackOnlyOS>true</SkipBuildOnRuntimePackOnlyOS>
+ </PropertyGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<!--
+ Don't include host resolver or host policy in iOS or Android runtime packs, because there is no
+ shared framework on those platforms.
+ -->
+ <PropertyGroup>
+ <ExcludeHostAssets Condition="'$(TargetOS)' == 'iOS'">true</ExcludeHostAssets>
+ <ExcludeHostAssets Condition="'$(TargetOS)' == 'Android'">true</ExcludeHostAssets>
+ </PropertyGroup>
+ <!--
Include HostPolicy and HostResolver based on legacy packages. This can be collapsed once the
legacy packages are no longer used.
-->
- <Import Project="..\..\Microsoft.NETCore.DotNetHostPolicy\Microsoft.NETCore.DotNetHostPolicy.props" />
- <Import Project="..\..\Microsoft.NETCore.DotNetHostResolver\Microsoft.NETCore.DotNetHostResolver.props" />
+ <Import Condition="'$(ExcludeHostAssets)' != 'true'" Project="..\..\Microsoft.NETCore.DotNetHostPolicy\Microsoft.NETCore.DotNetHostPolicy.props" />
+ <Import Condition="'$(ExcludeHostAssets)' != 'true'" Project="..\..\Microsoft.NETCore.DotNetHostResolver\Microsoft.NETCore.DotNetHostResolver.props" />
</Project>
<Target Name="GetDependencyVersionFiles" />
- <Target Name="AddRuntimeFilesToPackage" DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild" BeforeTargets="GetFilesFromPackageResolve">
+ <Target Name="AddRuntimeFilesToPackage" DependsOnTargets="ResolveRuntimeFilesFromLocalBuild" BeforeTargets="GetFilesFromPackageResolve">
<ItemGroup>
- <CoreCLRFiles>
+ <RuntimeFiles>
<TargetPath>runtimes/$(PackageRID)/native</TargetPath>
- </CoreCLRFiles>
+ </RuntimeFiles>
- <CoreCLRFiles Condition="'%(FileName)' == 'crossgen'">
+ <RuntimeFiles Condition="'%(FileName)' == 'crossgen'">
<TargetPath>tools</TargetPath>
- </CoreCLRFiles>
+ </RuntimeFiles>
+
+ <RuntimeFiles Condition="'$(TargetOS)' == 'iOS'"
+ Include="@(MonoCrossFiles)">
+ <TargetPath>runtimes/$(PackageRID)/native/cross</TargetPath>
+ </RuntimeFiles>
+ <RuntimeFiles Condition="'$(TargetOS)' == 'iOS'"
+ Include="@(MonoIncludeFiles)">
+ <TargetPath>runtimes/$(PackageRID)/native/include/%(RecursiveDir)</TargetPath>
+ </RuntimeFiles>
<CoreCLRCrossTargetFiles Condition="'%(FileName)' == 'clrjit' or '%(FileName)' == 'libclrjit'">
<TargetPath>runtimes/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)/native</TargetPath>
<CoreCLRCrossTargetFiles Condition="'%(FileName)%(Extension)' == 'mscordbi.dll' and '$(TargetsWindows)' == 'true'">
<TargetPath>tools/$(CoreCLRCrossTargetComponentDirName)_$(TargetArchitecture)</TargetPath>
</CoreCLRCrossTargetFiles>
- <ReferenceCopyLocalPaths Include="@(CoreCLRFiles);@(CoreCLRCrossTargetFiles)" />
+ <ReferenceCopyLocalPaths Include="@(RuntimeFiles);@(CoreCLRCrossTargetFiles);" />
</ItemGroup>
</Target>
<PropertyGroup>
<TargetOSTrait Condition="'$(TargetOS)' == 'Windows_NT'">nonwindowstests</TargetOSTrait>
<TargetOSTrait Condition="'$(TargetOS)' == 'Linux'">nonlinuxtests</TargetOSTrait>
- <TargetOSTrait Condition="'$(TargetOS)' == 'OSX'">nonosxtests</TargetOSTrait>
+ <TargetOSTrait Condition="'$(TargetOS)' == 'OSX' or '$(TargetOS)' == 'iOS'">nonosxtests</TargetOSTrait>
<TargetOSTrait Condition="'$(TargetOS)' == 'FreeBSD'">nonfreebsdtests</TargetOSTrait>
<TargetOSTrait Condition="'$(TargetOS)' == 'NetBSD'">nonnetbsdtests</TargetOSTrait>
</Target>
<Target Name="OverrideRuntimeCoreCLR"
- DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild"
+ DependsOnTargets="ResolveRuntimeFilesFromLocalBuild"
AfterTargets="AfterResolveReferences;FilterNugetPackages"
Condition="'$(RuntimeFlavor)' != 'Mono'">
<ItemGroup>
<!-- CoreRun is not used for testing anymore, but we still use it for benchmarking and profiling -->
- <CoreCLRFiles Include="$(CoreCLRArtifactsPath)/corerun*" />
- <CoreCLRFiles Include="$(CoreCLRArtifactsPath)/PDB/corerun*" />
- <ReferenceCopyLocalPaths Include="@(CoreCLRFiles)" />
+ <RuntimeFiles Include="$(CoreCLRArtifactsPath)/corerun*" />
+ <RuntimeFiles Include="$(CoreCLRArtifactsPath)/PDB/corerun*" />
+ <ReferenceCopyLocalPaths Include="@(RuntimeFiles)" />
</ItemGroup>
</Target>
<Target Name="OverrideRuntimeMono"
- DependsOnTargets="ResolveMonoFilesFromLocalBuild"
+ DependsOnTargets="ResolveRuntimeFilesFromLocalBuild"
AfterTargets="AfterResolveReferences;FilterNugetPackages"
Condition="'$(RuntimeFlavor)' == 'Mono'">
<ItemGroup>
- <ReferenceCopyLocalPaths Include="@(MonoFiles)" />
+ <ReferenceCopyLocalPaths Include="@(RuntimeFiles)" />
</ItemGroup>
</Target>
- <Target Name="GetCoreCLRILFiles" DependsOnTargets="ResolveCoreCLRFilesFromLocalBuild">
+ <Target Name="GetCoreCLRILFiles" DependsOnTargets="ResolveRuntimeFilesFromLocalBuild">
<ItemGroup>
<CoreCLRILFiles Include="$(CoreCLRArtifactsPath)/IL/*.*" />
</ItemGroup>