diff --git a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj index 3757ed34b68..7801e27b014 100644 --- a/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj +++ b/src/Microsoft.Android.Sdk.ILLink/Microsoft.Android.Sdk.ILLink.csproj @@ -1,4 +1,4 @@ - + $(DotNetTargetFramework) @@ -14,7 +14,6 @@ - diff --git a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/AddKeepAlivesStep.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/AddKeepAlivesStep.cs index 0ca2fa7f597..9968c0822fe 100644 --- a/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/AddKeepAlivesStep.cs +++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/AddKeepAlivesStep.cs @@ -3,31 +3,14 @@ using Java.Interop.Tools.Cecil; using Mono.Cecil; using Mono.Cecil.Cil; -using Mono.Linker; using Mono.Linker.Steps; using Xamarin.Android.Tasks; namespace MonoDroid.Tuner { - public class AddKeepAlivesStep : BaseStep -#if !ILLINK - , IAssemblyModifierPipelineStep -#endif // !ILLINK + public class AddKeepAlivesStep : BaseStep, IAssemblyModifierPipelineStep { - protected override void ProcessAssembly (AssemblyDefinition assembly) - { - var action = Annotations.HasAction (assembly) ? Annotations.GetAction (assembly) : AssemblyAction.Skip; - if (action == AssemblyAction.Delete) - return; - - if (AddKeepAlives (assembly)) { - if (action == AssemblyAction.Skip || action == AssemblyAction.Copy) - Annotations.SetAction (assembly, AssemblyAction.Save); - } - } - -#if !ILLINK public void ProcessAssembly (AssemblyDefinition assembly, StepContext context) { // Only run this step on user Android assemblies @@ -36,7 +19,6 @@ public void ProcessAssembly (AssemblyDefinition assembly, StepContext context) context.IsAssemblyModified |= AddKeepAlives (assembly); } -#endif // !ILLINK internal bool AddKeepAlives (AssemblyDefinition assembly) { @@ -145,11 +127,7 @@ protected virtual AssemblyDefinition GetCorlibAssembly () return Extensions.GetMethod (gcType, "KeepAlive", new string [] { "System.Object" }); } - public -#if !ILLINK - override -#endif - void LogMessage (string message) + public override void LogMessage (string message) { Context.LogMessage (message); } diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets index adca4dad466..92ddfda447a 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.TypeMap.LlvmIr.targets @@ -195,13 +195,6 @@ <_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" Type="Microsoft.Android.Sdk.ILLink.PreserveRegistrations" /> <_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" Type="Microsoft.Android.Sdk.ILLink.PreserveJavaInterfaces" /> <_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" Type="MonoDroid.Tuner.FixAbstractMethodsStep" /> - - <_TrimmerCustomSteps - Condition=" '$(AndroidAddKeepAlives)' == 'true' " - Include="$(_AndroidLinkerCustomStepAssembly)" - AfterStep="CleanStep" - Type="MonoDroid.Tuner.AddKeepAlivesStep" - /> <_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" AfterStep="CleanStep" Type="MonoDroid.Tuner.StripEmbeddedLibraries" /> <_TrimmerCustomSteps diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs b/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs index 08a558de918..4512be0f898 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs @@ -26,6 +26,8 @@ public class AssemblyModifierPipeline : AndroidTask { public override string TaskPrefix => "AMP"; + public bool AddKeepAlives { get; set; } + public string ApplicationJavaClass { get; set; } = ""; public string CodeGenerationTarget { get; set; } = ""; @@ -140,6 +142,13 @@ protected virtual void BuildPipeline (AssemblyPipeline pipeline, MSBuildLinkCont findJavaObjectsStep.Initialize (context); pipeline.Steps.Add (findJavaObjectsStep); + // AddKeepAlivesStep + if (AddKeepAlives) { + var addKeepAlivesStep = new AddKeepAlivesStep (); + addKeepAlivesStep.Initialize (context); + pipeline.Steps.Add (addKeepAlivesStep); + } + // SaveChangedAssemblyStep var writerParameters = new WriterParameters { DeterministicMvid = Deterministic, diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssembliesNoShrink.cs b/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssembliesNoShrink.cs index 9dc7e99e635..24ba3496279 100644 --- a/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssembliesNoShrink.cs +++ b/src/Xamarin.Android.Build.Tasks/Tasks/LinkAssembliesNoShrink.cs @@ -14,8 +14,6 @@ public class LinkAssembliesNoShrink : AssemblyModifierPipeline { public override string TaskPrefix => "LNS"; - public bool AddKeepAlives { get; set; } - public bool UseDesignerAssembly { get; set; } protected override void BuildPipeline (AssemblyPipeline pipeline, MSBuildLinkContext context) @@ -32,13 +30,6 @@ protected override void BuildPipeline (AssemblyPipeline pipeline, MSBuildLinkCon pipeline.Steps.Add (fixLegacyResourceDesignerStep); } - // AddKeepAlivesStep - if (AddKeepAlives) { - var addKeepAliveStep = new AddKeepAlivesStep (); - addKeepAliveStep.Initialize (context); - pipeline.Steps.Add (addKeepAliveStep); - } - // Ensure the task's steps are added base.BuildPipeline (pipeline, context); } diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 30e7b9d3813..2a014256582 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1459,6 +1459,7 @@ because xbuild doesn't support framework reference assemblies. Inputs="$(_AndroidLinkFlag)" Outputs="$(_AdditionalPostLinkerStepsFlag)">