|
6 | 6 | <BuildDependsOn> |
7 | 7 | ResolveReferences; |
8 | 8 | _CopyBootstrapTasksAssembly; |
9 | | - _CreateAndroidToolchains; |
| 9 | + _DownloadItems; |
| 10 | + _UnzipFiles; |
10 | 11 | _CreateMxeToolchains; |
11 | 12 | _AcceptAndroidSdkLicenses; |
12 | 13 | </BuildDependsOn> |
|
18 | 19 | Properties="OutputPath=$(AndroidToolchainDirectory)\" |
19 | 20 | /> |
20 | 21 | </Target> |
21 | | - <Target Name="_PrepareAndroidToolchainItems"> |
| 22 | + <UsingTask AssemblyFile="..\..\bin\Build$(Configuration)\Xamarin.Android.Tools.BootstrapTasks.dll" TaskName="Xamarin.Android.Tools.BootstrapTasks.UnzipDirectoryChildren" /> |
| 23 | + <Target Name="_DetermineItems"> |
| 24 | + <CreateItem |
| 25 | + Include="@(AndroidSdkItem)" |
| 26 | + Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' "> |
| 27 | + <Output TaskParameter="Include" ItemName="_PlatformAndroidSdkItem"/> |
| 28 | + </CreateItem> |
| 29 | + <CreateItem |
| 30 | + Include="@(AndroidNdkItem)" |
| 31 | + Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' "> |
| 32 | + <Output TaskParameter="Include" ItemName="_PlatformAndroidNdkItem"/> |
| 33 | + </CreateItem> |
| 34 | + <CreateItem |
| 35 | + Include="@(AntItem)" |
| 36 | + Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' "> |
| 37 | + <Output TaskParameter="Include" ItemName="_PlatformAntItem"/> |
| 38 | + </CreateItem> |
22 | 39 | <ItemGroup> |
23 | | - <_AndroidSdkStampFiles Include="@(AndroidSdkItem->'$(AndroidToolchainDirectory)\sdk\.stamp-%(Identity)')" Condition=" '%(AndroidSdkItem.HostOS)' == '$(HostOS)' Or '%(AndroidSdkItem.HostOS)' == '' " /> |
24 | | - <_AndroidNdkStampFiles Include="@(AndroidNdkItem->'$(AndroidToolchainDirectory)\ndk\.stamp-%(Identity)')" Condition=" '%(AndroidNdkItem.HostOS)' == '$(HostOS)' Or '%(AndroidNdkItem.HostOS)' == '' " /> |
25 | | - <_AntStampFiles Include="@(AntItem->'$(AndroidToolchainDirectory)\ant\.stamp-%(Identity)')" Condition=" '%(AntItem.HostOS)' == '$(HostOS)' Or '%(AntItem.HostOS)' == '' " /> |
| 40 | + <_SdkStampFiles Include="@(_PlatformAndroidSdkItem->'$(AndroidToolchainDirectory)\sdk\.stamp-%(Identity)')" /> |
| 41 | + </ItemGroup> |
| 42 | + <ItemGroup> |
| 43 | + <_SdkStampFiles Include="@(_PlatformAntItem->'$(AntDirectory)\.stamp-%(Identity)')" /> |
| 44 | + </ItemGroup> |
| 45 | + <ItemGroup> |
| 46 | + <_DownloadedItem Include="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" /> |
| 47 | + <_DownloadedItem Include="@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" /> |
| 48 | + <_DownloadedItem Include="@(_PlatformAntItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" /> |
26 | 49 | </ItemGroup> |
27 | 50 | </Target> |
28 | | - <Target Name="_CreateAndroidToolchains" |
29 | | - DependsOnTargets="_PrepareAndroidToolchainItems" |
30 | | - Outputs="@(_AndroidSdkStampFiles);@(_AndroidNdkStampFiles);@(_AntStampFiles)"> |
31 | | - <Exec |
32 | | - Command="make $(MakeConcurrency) provision-android DISABLE_IOS=1 ANDROID_TOOLCHAIN_DIR="$(AndroidToolchainDirectory)" ANDROID_TOOLCHAIN_CACHE_DIR="$(AndroidToolchainCacheDirectory)" ANDROID_TOOLCHAIN_PREFIX="$(AndroidToolchainDirectory)\toolchains" ANDROID_BUILD_TOOLS_VERSION="$(XABuildToolsVersion)" ANDROID_BUILD_TOOLS_DIR="$(XABuildToolsFolder)" ANDROID_PLATFORM_TOOLS="$(XAPlatformToolsVersion)"" |
33 | | - WorkingDirectory="$(MonoSourceFullPath)\sdks\builds" |
| 51 | + <Target Name="_DownloadItems" |
| 52 | + DependsOnTargets="_DetermineItems" |
| 53 | + Outputs="@(_DownloadedItem)"> |
| 54 | + <MakeDir Directories="$(AndroidToolchainCacheDirectory)" /> |
| 55 | + <DownloadUri |
| 56 | + SourceUris="@(_PlatformAndroidSdkItem->'$(AndroidUri)/%(RelUrl)%(Identity).zip');@(_PlatformAndroidNdkItem->'$(AndroidUri)/%(RelUrl)%(Identity).zip')" |
| 57 | + DestinationFiles="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip');@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" |
| 58 | + /> |
| 59 | + <DownloadUri |
| 60 | + SourceUris="@(_PlatformAntItem->'$(AntUri)/%(RelUrl)%(Identity).zip')" |
| 61 | + DestinationFiles="@(_PlatformAntItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" |
| 62 | + /> |
| 63 | + </Target> |
| 64 | + <Target Name="_UnzipFiles" |
| 65 | + DependsOnTargets="_DetermineItems" |
| 66 | + Inputs="@(_DownloadedItem)" |
| 67 | + Outputs="@(_SdkStampFiles);$(AndroidToolchainDirectory)\ndk\.stamp-ndk"> |
| 68 | + <CreateItem |
| 69 | + Include="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(_PlatformAndroidSdkItem.Identity).zip'"> |
| 70 | + <Output TaskParameter="Include" ItemName="_AndroidSdkItems"/> |
| 71 | + </CreateItem> |
| 72 | + <CreateItem |
| 73 | + Include="@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(_PlatformAndroidNdkItem.Identity).zip'" |
| 74 | + Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' "> |
| 75 | + <Output TaskParameter="Include" ItemName="_AndroidNdkItems"/> |
| 76 | + </CreateItem> |
| 77 | + |
| 78 | + <RemoveDir Directories="$(AndroidSdkDirectory);$(AndroidNdkDirectory);$(AntDirectory)" /> |
| 79 | + <MakeDir Directories="$(AndroidSdkDirectory);$(AndroidNdkDirectory);$(AntDirectory)" /> |
| 80 | + |
| 81 | + <UnzipDirectoryChildren |
| 82 | + HostOS="$(HostOS)" |
| 83 | + NoSubdirectory="%(_PlatformAndroidSdkItem.NoSubdirectory)" |
| 84 | + SourceFiles="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" |
| 85 | + DestinationFolder="$(AndroidToolchainDirectory)\sdk" |
| 86 | + /> |
| 87 | + <UnzipDirectoryChildren |
| 88 | + HostOS="$(HostOS)" |
| 89 | + NoSubdirectory="%(_PlatformAndroidSdkItem.NoSubdirectory)" |
| 90 | + SourceFiles="@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" |
| 91 | + DestinationFolder="$(AndroidToolchainDirectory)\ndk" |
| 92 | + /> |
| 93 | + <UnzipDirectoryChildren |
| 94 | + HostOS="$(HostOS)" |
| 95 | + NoSubdirectory="%(_PlatformAndroidSdkItem.NoSubdirectory)" |
| 96 | + SourceFiles="@(_PlatformAntItem->'$(AndroidToolchainCacheDirectory)\%(Identity).zip')" |
| 97 | + DestinationFolder="$(AntDirectory)" |
| 98 | + /> |
| 99 | + <Touch |
| 100 | + Files="@(_SdkStampFiles);$(AndroidToolchainDirectory)\ndk\.stamp-ndk" |
| 101 | + AlwaysCreate="True" |
34 | 102 | /> |
35 | 103 | </Target> |
36 | 104 | <Target Name="_AcceptAndroidSdkLicenses"> |
37 | 105 | <AcceptAndroidSdkLicenses AndroidSdkDirectory="$(AndroidSdkDirectory)" JavaSdkDirectory="$(JavaSdkDirectory)" /> |
38 | 106 | </Target> |
39 | 107 | <Target Name="_CreateMxeToolchains" |
40 | | - Condition=" '$(NeedMxe)' == 'true' And ($(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win32:')) Or $(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:')))" |
| 108 | + Condition=" '$(HostOS)' != 'Windows' And '$(NeedMxe)' == 'true' And ($(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win32:')) Or $(AndroidSupportedHostJitAbisForConditionalChecks.Contains (':mxe-Win64:')))" |
41 | 109 | Outputs="$(AndroidMxeFullPath)\.stamp"> |
42 | 110 | <GitCommitHash |
43 | 111 | WorkingDirectory="..\..\external\mxe" |
|
0 commit comments