Skip to content

Commit 67e216c

Browse files
committed
Merge pull request #2 from atsushieno/fix-toolchain-downloader
Add Linux sdk items and fix toolchain downloader to really respect HostOS
2 parents b3dca00 + a3036ce commit 67e216c

File tree

4 files changed

+42
-11
lines changed

4 files changed

+42
-11
lines changed

Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CONFIGURATION = Debug
2-
MSBUILD = xbuild /p:Configuration=$(CONFIGURATION)
2+
MSBUILD = xbuild /p:Configuration=$(CONFIGURATION) $(MSBUILD_ARGS)
33

44
all:
55
$(MSBUILD)

build-tools/android-toolchain/android-toolchain.projitems

+17-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,20 @@
44
<AndroidUri Condition=" '$(AndroidUri)' == '' ">https://dl-ssl.google.com/android/repository</AndroidUri>
55
</PropertyGroup>
66
<ItemGroup>
7+
<AndroidNdkItem Include="android-ndk-r11c-linux-x86_64.zip">
8+
<HostOS>Linux</HostOS>
9+
</AndroidNdkItem>
10+
<AndroidSdkItem Include="build-tools_r23-linux.zip">
11+
<HostOS>Linux</HostOS>
12+
<DestDir>build-tools\23.0.0</DestDir>
13+
</AndroidSdkItem>
14+
<AndroidSdkItem Include="platform-tools_r23-linux.zip">
15+
<HostOS>Linux</HostOS>
16+
<DestDir>platform-tools</DestDir>
17+
</AndroidSdkItem>
18+
<AndroidSdkItem Include="tools_r24.4.1-linux.zip">
19+
<HostOS>Linux</HostOS>
20+
</AndroidSdkItem>
721
<AndroidNdkItem Include="android-ndk-r11c-darwin-x86_64.zip">
822
<HostOS>Darwin</HostOS>
923
</AndroidNdkItem>
@@ -15,13 +29,15 @@
1529
<HostOS>Darwin</HostOS>
1630
<DestDir>platform-tools</DestDir>
1731
</AndroidSdkItem>
18-
<AndroidSdkItem Include="android-sdk_r24.4.1-macosx.zip">
32+
<AndroidSdkItem Include="tools_r24.4.1-macosx.zip">
1933
<HostOS>Darwin</HostOS>
2034
</AndroidSdkItem>
2135
<AndroidSdkItem Include="platform-N_r01.zip">
36+
<HostOS></HostOS>
2237
<DestDir>platforms\android-N</DestDir>
2338
</AndroidSdkItem>
2439
<AndroidSdkItem Include="android-23_r01.zip">
40+
<HostOS></HostOS>
2541
<DestDir>platforms\android-23</DestDir>
2642
</AndroidSdkItem>
2743
</ItemGroup>

build-tools/android-toolchain/android-toolchain.targets

+22-9
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,37 @@
1111
<UsingTask AssemblyFile="$(OutputPath)\Xamarin.Android.Tools.BootstrapTasks.dll" TaskName="Xamarin.Android.Tools.BootstrapTasks.CreateTemporaryDirectory" />
1212
<UsingTask AssemblyFile="$(OutputPath)\Xamarin.Android.Tools.BootstrapTasks.dll" TaskName="Xamarin.Android.Tools.BootstrapTasks.DownloadUri" />
1313
<UsingTask AssemblyFile="$(OutputPath)\Xamarin.Android.Tools.BootstrapTasks.dll" TaskName="Xamarin.Android.Tools.BootstrapTasks.UnzipDirectoryChildren" />
14+
<Target Name="_DetermineItems">
15+
<CreateItem
16+
Include="@(AndroidSdkItem)"
17+
Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' ">
18+
<Output TaskParameter="Include" ItemName="_PlatformAndroidSdkItem"/>
19+
</CreateItem>
20+
<CreateItem
21+
Include="@(AndroidNdkItem)"
22+
Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' ">
23+
<Output TaskParameter="Include" ItemName="_PlatformAndroidNdkItem"/>
24+
</CreateItem>
25+
</Target>
1426
<Target Name="_DownloadItems"
15-
Outputs="@(AndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)');@(AndroidNdkItems->'$(AndroidToolchainCacheDirectory)\%(Identity)')">
27+
DependsOnTargets="_DetermineItems"
28+
Outputs="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)');@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)')">
1629
<DownloadUri
17-
SourceUris="@(AndroidSdkItem->'$(AndroidUri)/%(Identity)');@(AndroidNdkItem->'$(AndroidUri)/%(Identity)')"
18-
DestinationFiles="@(AndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)');@(AndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)')"
30+
SourceUris="@(_PlatformAndroidSdkItem->'$(AndroidUri)/%(Identity)');@(_PlatformAndroidNdkItem->'$(AndroidUri)/%(Identity)')"
31+
DestinationFiles="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)');@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)')"
1932
/>
2033
</Target>
2134
<Target Name="_UnzipFiles"
22-
Inputs="@(AndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)')"
35+
DependsOnTargets="_DetermineItems"
36+
Inputs="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)')"
2337
Outputs="$(AndroidToolchainDirectory)\.stamp-sdk">
2438
<CreateItem
25-
Include="@(AndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)"
26-
Condition=" '%(AndroidSdkItem.HostOS)' == '$(HostOS)' Or '%(AndroidSdkItem.HostOS)' == '' ">
27-
<Output TaskParameter="Include" ItemName="_AndroidSdkItems"/>
39+
Include="@(_PlatformAndroidSdkItem->'$(AndroidToolchainCacheDirectory)\%(_PlatformAndroidSdkItem.Identity)">
40+
<Output TaskParameter="Include" ItemName="_AndroidSdkItems"/>
2841
</CreateItem>
2942
<CreateItem
30-
Include="@(AndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(Identity)"
31-
Condition=" '%(AndroidSdkItem.HostOS)' == '$(HostOS)' Or '%(AndroidSdkItem.HostOS)' == '' ">
43+
Include="@(_PlatformAndroidNdkItem->'$(AndroidToolchainCacheDirectory)\%(_PlatformAndroidNdkItem.Identity)"
44+
Condition=" '%(HostOS)' == '$(HostOS)' Or '%(HostOS)' == '' ">
3245
<Output TaskParameter="Include" ItemName="_AndroidNdkItems"/>
3346
</CreateItem>
3447

src/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks/DownloadUri.cs

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public override bool Execute ()
4242

4343
var tasks = new TTask [SourceUris.Length];
4444
using (var client = new HttpClient ()) {
45+
client.Timeout = TimeSpan.FromHours (3);
4546
for (int i = 0; i < SourceUris.Length; ++i) {
4647
tasks [i] = DownloadFile (client, SourceUris [i], DestinationFiles [i].ItemSpec);
4748
}
@@ -57,6 +58,7 @@ async TTask DownloadFile (HttpClient client, string uri, string destinationFile)
5758
Log.LogMessage (MessageImportance.Normal, $"Skipping uri '{uri}' as destination file already exists '{destinationFile}'.");
5859
return;
5960
}
61+
Log.LogMessage (MessageImportance.Low, $"Downloading '{uri}'.");
6062
using (var r = await client.GetAsync (uri))
6163
using (var o = File.OpenWrite (destinationFile)) {
6264
await r.Content.CopyToAsync (o);

0 commit comments

Comments
 (0)