Skip to content

Commit 57fd29d

Browse files
[Mono.Android] build and reference non-PCL Java.Interop
Fixes: http://work.devdiv.io/667174 Context: dotnet/java-interop#360 Building `Java.Interop` in a similar fashion as `Mono.Android.dll`: <PropertyGroup> <NoStdLib>true</NoStdLib> </PropertyGroup> <ItemGroup> <Reference Include="mscorlib"> <HintPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\v1.0\mscorlib.dll</HintPath> <Private>False</Private> </Reference> <Reference Include="System"> <HintPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\v1.0\System.dll</HintPath> <Private>False</Private> </Reference> <Reference Include="System.Core"> <HintPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\v1.0\System.Core.dll</HintPath> <Private>False</Private> </Reference> </ItemGroup> Decreases the assemblies referenced in a "Hello World" Xamarin.Android project dramatically: Adding assembly reference for Java.Interop, Version=0.1.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065, recursively... Adding assembly reference for System.Runtime, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.ComponentModel.Composition, Version=2.0.5.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, recursively... Adding assembly reference for System.Diagnostics.Debug, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Threading, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Collections, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Collections.Concurrent, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Reflection, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Linq.Expressions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Reflection.Primitives, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Dynamic.Runtime, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.ObjectModel, Version=4.0.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Linq, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Runtime.InteropServices, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Runtime.Extensions, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for System.Reflection.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, recursively... Adding assembly reference for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065, recursively... Becomes: Adding assembly reference for Java.Interop, Version=0.1.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065, recursively... Adding assembly reference for Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065, recursively... And the savings in build times for "Hello World", this is the `Rebuild` target: - `Debug` + PCL - 8.424s - `Release` + PCL - 13.651s - `Debug` + *not* PCL - 4.258s - `Release` + *not* PCL - 9.487s *NOTE: this was a master/Debug build of Xamarin.Android* Changes: - `$(MSBuildThisFile)` should be an input of `_BuildJavaInterop` - Set `$(JavaInteropProfile)` so a non-PCL version of `Java.Interop.dll` is built - Make sure to copy `Java.Interop.dll` from the `DebugNet45` directory
1 parent 508c1c1 commit 57fd29d

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/Mono.Android/Mono.Android.targets

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,14 @@
88
</ItemGroup>
99
<Target Name="_BuildJavaInterop"
1010
BeforeTargets="BeforeResolveReferences"
11-
Inputs="$(JavaInteropFullPath)\src\Java.Interop\Java.Interop.csproj"
11+
Inputs="$(MSBuildThisFile);$(JavaInteropFullPath)\src\Java.Interop\Java.Interop.csproj"
1212
Outputs="$(OutputPath)\..\v1.0\Java.Interop.dll">
1313
<MSBuild
1414
Projects="$(JavaInteropFullPath)\src\Java.Interop\Java.Interop.csproj"
15+
Properties="JavaInteropProfile=Net45;XAInstallPrefix=$(XAInstallPrefix)"
1516
/>
1617
<ItemGroup>
17-
<Assembly Include="$(JavaInteropFullPath)\bin\$(Configuration)\*.dll*" />
18+
<Assembly Include="$(JavaInteropFullPath)\bin\$(Configuration)Net45\*.dll*" />
1819
</ItemGroup>
1920
<Copy
2021
SourceFiles="@(Assembly)"

0 commit comments

Comments
 (0)