diff --git a/src/Microsoft.Android.Sdk.ILLink/StripEmbeddedLibraries.cs b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/StripEmbeddedLibrariesStep.cs
similarity index 60%
rename from src/Microsoft.Android.Sdk.ILLink/StripEmbeddedLibraries.cs
rename to src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/StripEmbeddedLibrariesStep.cs
index 041bead3f92..16d867d4a41 100644
--- a/src/Microsoft.Android.Sdk.ILLink/StripEmbeddedLibraries.cs
+++ b/src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/StripEmbeddedLibrariesStep.cs
@@ -1,36 +1,38 @@
-using Mono.Cecil;
-using Mono.Linker;
-using Mono.Linker.Steps;
using System;
using System.Linq;
+using Microsoft.Android.Build.Tasks;
+using Microsoft.Build.Utilities;
+using Mono.Cecil;
using Xamarin.Android.Tasks;
namespace MonoDroid.Tuner
{
- public class StripEmbeddedLibraries : BaseStep
+ public class StripEmbeddedLibrariesStep : IAssemblyModifierPipelineStep
{
- protected override void ProcessAssembly (AssemblyDefinition assembly)
+ public TaskLoggingHelper Log { get; }
+
+ public StripEmbeddedLibrariesStep (TaskLoggingHelper log)
{
- if (!Annotations.HasAction (assembly))
- return;
- var action = Annotations.GetAction (assembly);
- if (action == AssemblyAction.Skip || action == AssemblyAction.Delete)
- return;
+ Log = log;
+ }
- if (MonoAndroidHelper.IsFrameworkAssembly (assembly))
+ public void ProcessAssembly (AssemblyDefinition assembly, StepContext context)
+ {
+ if (context.IsFrameworkAssembly)
return;
+
bool assembly_modified = false;
foreach (var mod in assembly.Modules) {
foreach (var r in mod.Resources.ToArray ()) {
if (ShouldStripResource (r)) {
- Context.LogMessage ($" Stripped {r.Name} from {assembly.Name.Name}.dll");
+ Log.LogDebugMessage ($" Stripped {r.Name} from {assembly.Name.Name}.dll");
mod.Resources.Remove (r);
assembly_modified = true;
}
}
}
- if (assembly_modified && action == AssemblyAction.Copy) {
- Annotations.SetAction (assembly, AssemblyAction.Save);
+ if (assembly_modified) {
+ context.IsAssemblyModified = true;
}
}
diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets
index c0c7ff7de09..1d46da787a6 100644
--- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets
+++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets
@@ -71,7 +71,6 @@ This file contains the .NET 5-specific targets to customize ILLink
Type="MonoDroid.Tuner.AddKeepAlivesStep"
/>
- <_TrimmerCustomSteps Include="$(_AndroidLinkerCustomStepAssembly)" AfterStep="CleanStep" Type="MonoDroid.Tuner.StripEmbeddedLibraries" />
<_TrimmerCustomSteps
Condition=" '$(AndroidLinkResources)' == 'true' "
Include="$(_AndroidLinkerCustomStepAssembly)"
diff --git a/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs b/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs
index 08a558de918..df35f011c30 100644
--- a/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs
+++ b/src/Xamarin.Android.Build.Tasks/Tasks/AssemblyModifierPipeline.cs
@@ -140,6 +140,10 @@ protected virtual void BuildPipeline (AssemblyPipeline pipeline, MSBuildLinkCont
findJavaObjectsStep.Initialize (context);
pipeline.Steps.Add (findJavaObjectsStep);
+ // StripEmbeddedLibrariesStep
+ var stripEmbeddedLibrariesStep = new StripEmbeddedLibrariesStep (Log);
+ pipeline.Steps.Add (stripEmbeddedLibrariesStep);
+
// SaveChangedAssemblyStep
var writerParameters = new WriterParameters {
DeterministicMvid = Deterministic,
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
index 79f6e450ae3..b0262d3197b 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
@@ -55,6 +55,7 @@
+