<?xml version="1.0" encoding="UTF-8" ?>
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<UsingTask TaskName="Xamarin.Build.Download.XamarinDownloadArchives" AssemblyFile="Xamarin.Build.Download.dll" />
|
<UsingTask TaskName="Xamarin.Build.Download.XamarinDownloadPartialZips" AssemblyFile="Xamarin.Build.Download.dll" />
|
<UsingTask TaskName="Xamarin.Build.Download.XamarinBuildGetArchivesToDownload" AssemblyFile="Xamarin.Build.Download.dll" />
|
<UsingTask TaskName="Xamarin.Build.Download.XamarinBuildCastAssemblyResources" AssemblyFile="Xamarin.Build.Download.dll" />
|
|
<PropertyGroup>
|
<XamarinBuildDownloadDir Condition="'$(XamarinBuildDownloadDir)' != '' and !HasTrailingSlash('$(XamarinBuildDownloadDir)')">$(XamarinBuildDownloadDir)\</XamarinBuildDownloadDir>
|
<XamarinBuildDownloadAllowUnsecure Condition="'$(XamarinBuildDownloadAllowUnsecure)' == ''">false</XamarinBuildDownloadAllowUnsecure>
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)'=='Xamarin.iOS' And ('$(OutputType)' != 'Library' OR '$(IsAppExtension)'=='True')">
|
<_XamarinBuildDownloadMasterBeforeTargets>GetFrameworkPaths</_XamarinBuildDownloadMasterBeforeTargets>
|
<_XamarinBuildDownloadMasterDependsOnTargets>_XamarinBuildDownload;_XamarinBuildCastAssemblyResources</_XamarinBuildDownloadMasterDependsOnTargets>
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)'=='MonoAndroid'">
|
<_XamarinBuildDownloadIsAndroid>true</_XamarinBuildDownloadIsAndroid>
|
<_XamarinBuildDownloadMasterBeforeTargets>_ResolveLibraryProjectImports</_XamarinBuildDownloadMasterBeforeTargets>
|
<_XamarinBuildDownloadMasterDependsOnTargets>ResolveAssemblyReferences;_XamarinBuildDownload;_XamarinBuildDownloadAarRestore;_XamarinBuildDownloadAarInclude</_XamarinBuildDownloadMasterDependsOnTargets>
|
<_XamarinBuildDownloadAndroidFixManifests Condition="'$(_XamarinBuildDownloadAndroidFixManifests)' == ''">true</_XamarinBuildDownloadAndroidFixManifests>
|
</PropertyGroup>
|
|
<PropertyGroup Condition="'$(TargetFrameworkIdentifier)'!='MonoAndroid'">
|
<_XamarinBuildDownloadIsAndroid>false</_XamarinBuildDownloadIsAndroid>
|
</PropertyGroup>
|
|
<PropertyGroup>
|
<CleanDependsOn>
|
$(CleanDependsOn);
|
_CleanXbdMerge;
|
</CleanDependsOn>
|
</PropertyGroup>
|
|
|
<!--
|
In XS, props files are not inserted in the correct place (https://bugzilla.xamarin.com/show_bug.cgi?id=19054)
|
so targets files cannot reference $(XamarinBuildDownloadDir) when registering items.
|
This is a workaround: it provides a point to register targets that can insert the items.
|
-->
|
<Target Name="_XamarinBuildAddDownloadedItems" DependsOnTargets="@(XamarinBuildRestoreResources)" />
|
|
<Target
|
Name="_XamarinBuildDownload"
|
DependsOnTargets="_XamarinBuildAddDownloadedItems;_XamarinBuildDownloadCore;_XamarinBuildDownloadPartialZipsCore"
|
/>
|
|
<Target Name="_XamarinBuildDownloadCore"
|
Condition="'@(XamarinBuildDownload)'!=''">
|
|
<XamarinDownloadArchives
|
AllowUnsecureUrls="$(XamarinBuildDownloadAllowUnsecure)"
|
Archives="@(XamarinBuildDownload)"
|
DestinationBase="$(XamarinBuildDownloadDir)"
|
CacheDirectory="$(XamarinBuildDownloadDir)"
|
User7ZipPath="$(XamarinBuildDownloadUser7ZipPath)"
|
VsInstallRoot="$(VsInstallRoot)"
|
IsAndroid="$(_XamarinBuildDownloadIsAndroid)"
|
AndroidFixManifests="$(_XamarinBuildDownloadAndroidFixManifests)"
|
/>
|
</Target>
|
|
<Target Name="_XamarinBuildDownloadPartialZipsCore"
|
Condition="'@(XamarinBuildDownloadPartialZip)'!=''">
|
<XamarinDownloadPartialZips
|
AllowUnsecureUrls="$(XamarinBuildDownloadAllowUnsecure)"
|
Parts="@(XamarinBuildDownloadPartialZip)"
|
CacheDirectory="$(XamarinBuildDownloadDir)"
|
IsAndroid="$(_XamarinBuildDownloadIsAndroid)"
|
AndroidFixManifests="$(_XamarinBuildDownloadAndroidFixManifests)"
|
/>
|
</Target>
|
|
<Target Name="_XamarinBuildCastAssemblyResources"
|
DependsOnTargets="_XamarinBuildDownload"
|
Condition="'@(RestoreAssemblyResource)'!=''"
|
>
|
<XamarinBuildCastAssemblyResources
|
RestoreAssemblyResources="@(RestoreAssemblyResource)">
|
<Output TaskParameter="BundleResources" ItemName="BundleResource" />
|
</XamarinBuildCastAssemblyResources>
|
</Target>
|
|
<Target Name="_XamarinBuildDownloadAarRestore"
|
Condition="'@(XamarinBuildDownloadRestoreAssemblyAar)'!=''"
|
DependsOnTargets="_XamarinBuildDownload">
|
<Warning
|
Code="XBD100"
|
Text="ItemGroup `XamarinBuildDownloadRestoreAssemblyAar` is no longer supported. If your build is failing, revert to an older Xamarin.Build.Download version, or migrate your packages to use the new `XamarinBuildDownloadAndroidAarLibrary` ItemGroup. If your build is succeeding it is safe to ignore this warning."
|
/>
|
</Target>
|
|
<Target Name="_XamarinBuildDownloadAarInclude"
|
Condition="'@(XamarinBuildDownloadAndroidAarLibrary)'!=''"
|
DependsOnTargets="_XamarinBuildDownload">
|
|
<!-- Check if `AndroidAarLibrary` isn't supported and error if so -->
|
<Error
|
Condition="'@(AvailableItemName->AnyHaveMetadataValue('Identity', 'AndroidAarLibrary'))'!='true' and ('$(AndroidClassParser)'=='' or '$(AndroidCodegenTarget)'=='')"
|
Text="This version of Xamarin.Build.Download requires a newer version of Xamarin.Android."
|
/>
|
|
<ItemGroup>
|
<AndroidAarLibrary Include="@(XamarinBuildDownloadAndroidAarLibrary)" />
|
</ItemGroup>
|
</Target>
|
|
<Target Name="_XamarinBuildDownloadMasterTarget"
|
Condition="'$(_XamarinBuildDownloadMasterDependsOnTargets)'!=''"
|
BeforeTargets="$(_XamarinBuildDownloadMasterBeforeTargets)"
|
DependsOnTargets="$(_XamarinBuildDownloadMasterDependsOnTargets)" />
|
|
<Target Name="XamarinBuildDownloadGetItemsToDownload" Returns="@(XamarinBuildDownloadItemToDownload)">
|
<XamarinBuildGetArchivesToDownload
|
AllowUnsecureUrls="$(XamarinBuildDownloadAllowUnsecure)"
|
Archives="@(XamarinBuildDownload)"
|
PartialZipDownloads="@(XamarinBuildDownloadPartialZip)"
|
DestinationBase="$(XamarinBuildDownloadDir)"
|
CacheDirectory="$(XamarinBuildDownloadDir)">
|
<Output TaskParameter="ArchivesToDownload" ItemName="XamarinBuildDownloadItemToDownload" />
|
</XamarinBuildGetArchivesToDownload>
|
</Target>
|
|
|
<Target Name="_CleanXbdMerge">
|
<RemoveDir Directories="$(IntermediateOutputPath)XbdMerge\proguard" Condition="Exists ('$(IntermediateOutputPath)XbdMerge\proguard')" />
|
<RemoveDir Directories="$(IntermediateOutputPath)XbdMerge" Condition="Exists ('$(IntermediateOutputPath)XbdMerge')" />
|
</Target>
|
</Project>
|