Skip to content

Commit a2687c4

Browse files
authored
[Mono.Android.Export] Build against netcoreapp3.1 (#4456)
We expect the .NET 5 BCL to closely resemble the .NET Core 3.1 BCL. Continue preparing for .NET 5 and build `Mono.Android.Export.dll` against the `netcoreapp3.1` target framework, to ensure that the APIs that we need actually exist.
1 parent d89e3f1 commit a2687c4

File tree

5 files changed

+36
-100
lines changed

5 files changed

+36
-100
lines changed

src/Mono.Android.Export/CallbackCode.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -511,9 +511,9 @@ static class DynamicCallbackFactory
511511
{
512512
static DynamicCallbackFactory ()
513513
{
514-
var ass = AppDomain.CurrentDomain.DefineDynamicAssembly (
514+
var assembly = AssemblyBuilder.DefineDynamicAssembly (
515515
new AssemblyName ("__callback_factory__"), AssemblyBuilderAccess.Run);
516-
Module = ass.DefineDynamicModule ("__callback_factory__");
516+
Module = assembly.DefineDynamicModule ("__callback_factory__");
517517
CodeClass = new CodeClass (Module, "__callback_factory__class__");
518518
}
519519
public static ModuleBuilder Module { get; private set; }
Lines changed: 32 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,30 @@
11
<?xml version="1.0" encoding="utf-8"?>
2-
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2+
<Project>
3+
4+
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
5+
<Import Project="..\..\Configuration.props" />
6+
37
<PropertyGroup>
4-
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
5-
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
6-
<ProjectGuid>{B8105878-D423-4159-A3E7-028298281EC6}</ProjectGuid>
7-
<ProjectTypeGuids>{EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
8-
<OutputType>Library</OutputType>
9-
<RootNamespace>Mono.Android.Export</RootNamespace>
10-
<AssemblyName>Mono.Android.Export</AssemblyName>
8+
<TargetFrameworks>monoandroid10;netcoreapp3.1</TargetFrameworks>
119
<SignAssembly>true</SignAssembly>
1210
<AssemblyOriginatorKeyFile>..\..\product.snk</AssemblyOriginatorKeyFile>
11+
<NoStdLib>true</NoStdLib>
12+
<ImplicitlyExpandDesignTimeFacades>false</ImplicitlyExpandDesignTimeFacades>
1313
</PropertyGroup>
14-
<Import Project="..\..\Configuration.props" />
15-
<PropertyGroup>
14+
15+
<PropertyGroup Condition=" '$(TargetFramework)' == 'monoandroid10' ">
1616
<TargetFrameworkIdentifier>MonoAndroid</TargetFrameworkIdentifier>
17-
<TargetFrameworkVersion>$(AndroidFrameworkVersion)</TargetFrameworkVersion>
17+
<TargetFrameworkVersion>v1.0</TargetFrameworkVersion>
1818
<TargetFrameworkRootPath>$(XAInstallPrefix)xbuild-frameworks</TargetFrameworkRootPath>
19+
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\$(AndroidFrameworkVersion)\</OutputPath>
20+
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
1921
</PropertyGroup>
20-
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
21-
<DebugSymbols>true</DebugSymbols>
22-
<Optimize>false</Optimize>
23-
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\$(AndroidFrameworkVersion)</OutputPath>
24-
<DefineConstants>DEBUG;</DefineConstants>
25-
<ErrorReport>prompt</ErrorReport>
26-
<WarningLevel>4</WarningLevel>
27-
<ConsolePause>false</ConsolePause>
28-
<NoStdLib>true</NoStdLib>
29-
</PropertyGroup>
30-
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
31-
<DebugSymbols>true</DebugSymbols>
32-
<Optimize>true</Optimize>
33-
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\$(AndroidFrameworkVersion)</OutputPath>
34-
<ErrorReport>prompt</ErrorReport>
35-
<WarningLevel>4</WarningLevel>
36-
<ConsolePause>false</ConsolePause>
37-
<NoStdLib>true</NoStdLib>
22+
23+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
24+
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\Xamarin.Android.App\</OutputPath>
3825
</PropertyGroup>
39-
<ItemGroup>
26+
27+
<ItemGroup Condition=" '$(TargetFramework)' == 'monoandroid10' ">
4028
<Reference Include="mscorlib">
4129
<HintPath>$(OutputPath)..\v1.0\mscorlib.dll</HintPath>
4230
<Private>False</Private>
@@ -62,66 +50,20 @@
6250
<Private>False</Private>
6351
</Reference>
6452
</ItemGroup>
65-
<ItemGroup>
66-
<Compile Include="Properties\AssemblyInfo.cs" />
67-
<Compile Include="CallbackCode.cs" />
68-
<Compile Include="Mono.CodeGeneration\CodeAdd.cs" />
69-
<Compile Include="Mono.CodeGeneration\CodeAnd.cs" />
70-
<Compile Include="Mono.CodeGeneration\CodeArgument.cs" />
71-
<Compile Include="Mono.CodeGeneration\CodeArgumentReference.cs" />
72-
<Compile Include="Mono.CodeGeneration\CodeArithmeticOperation.cs" />
73-
<Compile Include="Mono.CodeGeneration\CodeArrayItem.cs" />
74-
<Compile Include="Mono.CodeGeneration\CodeArrayLength.cs" />
75-
<Compile Include="Mono.CodeGeneration\CodeAssignment.cs" />
76-
<Compile Include="Mono.CodeGeneration\CodeBinaryComparison.cs" />
77-
<Compile Include="Mono.CodeGeneration\CodeBinaryOperation.cs" />
78-
<Compile Include="Mono.CodeGeneration\CodeBlock.cs" />
79-
<Compile Include="Mono.CodeGeneration\CodeBuilder.cs" />
80-
<Compile Include="Mono.CodeGeneration\CodeCast.cs" />
81-
<Compile Include="Mono.CodeGeneration\CodeClass.cs" />
82-
<Compile Include="Mono.CodeGeneration\CodeCustomAttribute.cs" />
83-
<Compile Include="Mono.CodeGeneration\CodeDecrement.cs" />
84-
<Compile Include="Mono.CodeGeneration\CodeEquals.cs" />
85-
<Compile Include="Mono.CodeGeneration\CodeExpression.cs" />
86-
<Compile Include="Mono.CodeGeneration\CodeFieldReference.cs" />
87-
<Compile Include="Mono.CodeGeneration\CodeFor.cs" />
88-
<Compile Include="Mono.CodeGeneration\CodeForeach.cs" />
89-
<Compile Include="Mono.CodeGeneration\CodeGenerationHelper.cs" />
90-
<Compile Include="Mono.CodeGeneration\CodeIf.cs" />
91-
<Compile Include="Mono.CodeGeneration\CodeIncrement.cs" />
92-
<Compile Include="Mono.CodeGeneration\CodeIs.cs" />
93-
<Compile Include="Mono.CodeGeneration\CodeItem.cs" />
94-
<Compile Include="Mono.CodeGeneration\CodeLiteral.cs" />
95-
<Compile Include="Mono.CodeGeneration\CodeMethod.cs" />
96-
<Compile Include="Mono.CodeGeneration\CodeMethodCall.cs" />
97-
<Compile Include="Mono.CodeGeneration\CodeModule.cs" />
98-
<Compile Include="Mono.CodeGeneration\CodeNew.cs" />
99-
<Compile Include="Mono.CodeGeneration\CodeNewArray.cs" />
100-
<Compile Include="Mono.CodeGeneration\CodeNotEquals.cs" />
101-
<Compile Include="Mono.CodeGeneration\CodeOr.cs" />
102-
<Compile Include="Mono.CodeGeneration\CodeProperty.cs" />
103-
<Compile Include="Mono.CodeGeneration\CodePropertyReference.cs" />
104-
<Compile Include="Mono.CodeGeneration\CodeReturn.cs" />
105-
<Compile Include="Mono.CodeGeneration\CodeSelect.cs" />
106-
<Compile Include="Mono.CodeGeneration\CodeSelfIncrement.cs" />
107-
<Compile Include="Mono.CodeGeneration\CodeTryBlock.cs" />
108-
<Compile Include="Mono.CodeGeneration\CodeUnaryOperation.cs" />
109-
<Compile Include="Mono.CodeGeneration\CodeValueReference.cs" />
110-
<Compile Include="Mono.CodeGeneration\CodeVariableDeclaration.cs" />
111-
<Compile Include="Mono.CodeGeneration\CodeVariableReference.cs" />
112-
<Compile Include="Mono.CodeGeneration\CodeWhen.cs" />
113-
<Compile Include="Mono.CodeGeneration\CodeWhile.cs" />
114-
<Compile Include="Mono.CodeGeneration\CodeWriter.cs" />
115-
<Compile Include="Mono.CodeGeneration\Exp.cs" />
53+
54+
<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
55+
<ProjectReference Include="..\..\external\Java.Interop\src\Java.Interop\Java.Interop.csproj" />
11656
</ItemGroup>
117-
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
118-
<PropertyGroup>
119-
<ImplicitlyExpandDesignTimeFacades>False</ImplicitlyExpandDesignTimeFacades>
120-
</PropertyGroup>
57+
12158
<ItemGroup>
122-
<ProjectReference Include="..\Mono.Android\Mono.Android.csproj">
123-
<Project>{66CF299A-CE95-4131-BCD8-DB66E30C4BF7}</Project>
124-
<Name>Mono.Android</Name>
125-
</ProjectReference>
59+
<ProjectReference Include="..\Mono.Android\Mono.Android.csproj" />
12660
</ItemGroup>
127-
</Project>
61+
62+
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
63+
64+
<!-- Only build the 'netcoreapp3.1' version of 'Mono.Android.Export.dll' once. -->
65+
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' And '$(AndroidFrameworkVersion)' != '$(AndroidLatestStableFrameworkVersion)' ">
66+
<BuildDependsOn></BuildDependsOn>
67+
</PropertyGroup>
68+
69+
</Project>

src/Mono.Android.Export/Mono.CodeGeneration/CodeModule.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public CodeModule (string name)
4343
#if NET_2_1
4444
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly (myAsmName, AssemblyBuilderAccess.Run);
4545
#else
46-
AssemblyBuilder myAsmBuilder = myDomain.DefineDynamicAssembly (myAsmName, AssemblyBuilderAccess.RunAndSave);
46+
AssemblyBuilder myAsmBuilder = AssemblyBuilder.DefineDynamicAssembly (myAsmName, AssemblyBuilderAccess.Run);
4747
#endif
4848
module = myAsmBuilder.DefineDynamicModule (name);
4949
}

src/Mono.Android.Export/Properties/AssemblyInfo.cs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,10 @@
44
// Information about this assembly is defined by the following attributes.
55
// Change them to the values specific to your project.
66

7-
[assembly: AssemblyTitle ("Mono.Android.Export")]
87
[assembly: AssemblyDescription ("")]
9-
[assembly: AssemblyConfiguration ("")]
10-
[assembly: AssemblyCompany ("Xamarin Inc.")]
11-
[assembly: AssemblyProduct ("")]
128
[assembly: AssemblyCopyright ("Xamarin Inc.")]
139
[assembly: AssemblyTrademark ("Xamarin")]
1410
[assembly: AssemblyCulture ("")]
15-
[assembly: AssemblyVersion ("1.0.0.0")]
1611

1712
// The following attributes are used to specify the signing key for the assembly,
1813
// if desired. See the Mono documentation for more information about signing.

src/Mono.Android/Mono.Android.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
2121
<!-- @(Compile) ordering matters! See https://github.com/xamarin/java.interop/commit/d7dfa0bb7b03261d5eceb51ac22cd33aa15fa865 -->
2222
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
23+
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
2324
</PropertyGroup>
2425

2526
<PropertyGroup Condition=" '$(TargetFramework)' == 'monoandroid10' ">
@@ -28,12 +29,10 @@
2829
<TargetFrameworkRootPath>$(XAInstallPrefix)xbuild-frameworks</TargetFrameworkRootPath>
2930
<DefineConstants>$(DefineConstants);NET_2_0</DefineConstants>
3031
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\MonoAndroid\$(AndroidFrameworkVersion)\</OutputPath>
31-
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
3232
</PropertyGroup>
3333

3434
<PropertyGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
3535
<OutputPath>$(XAInstallPrefix)xbuild-frameworks\Xamarin.Android.App\$(TargetFramework)\</OutputPath>
36-
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
3736
</PropertyGroup>
3837

3938
<ItemGroup Condition=" '$(TargetFramework)' == 'monoandroid10' ">

0 commit comments

Comments
 (0)