Skip to content

Commit 87cc566

Browse files
committed
Add AndroidLinkResources argument
1 parent 238152b commit 87cc566

File tree

8 files changed

+23
-5
lines changed

8 files changed

+23
-5
lines changed

src/Microsoft.Android.Sdk.ILLink/SetupStep.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,11 @@ protected override void Process ()
5656
if (Context.TryGetCustomData ("AddKeepAlivesStep", out addKeepAlivesStep) && bool.TryParse (addKeepAlivesStep, out var bv) && bv)
5757
InsertAfter (new AddKeepAlivesStep (cache), "CleanStep");
5858

59-
InsertAfter (new RemoveResourceDesignerStep (), "CleanStep");
60-
InsertAfter (new GetAssembliesStep (), "CleanStep");
59+
string androidLinkResources;
60+
if (Context.TryGetCustomData ("AndroidLinkResources", out androidLinkResources) && bool.TryParse (androidLinkResources, out var linkResources) && linkResources) {
61+
InsertAfter (new RemoveResourceDesignerStep (), "CleanStep");
62+
InsertAfter (new GetAssembliesStep (), "CleanStep");
63+
}
6164
InsertAfter (new StripEmbeddedLibraries (), "CleanStep");
6265
}
6366

src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/Linker.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,11 @@ static Pipeline CreatePipeline (LinkerOptions options)
122122
pipeline.AppendStep (new StripEmbeddedLibraries ());
123123
if (options.AddKeepAlives)
124124
pipeline.AppendStep (new AddKeepAlivesStep (cache));
125-
pipeline.AppendStep (new GetAssembliesStep ());
126-
pipeline.AppendStep (new RemoveResourceDesignerStep ());
125+
126+
if (options.LinkResources) {
127+
pipeline.AppendStep (new GetAssembliesStep ());
128+
pipeline.AppendStep (new RemoveResourceDesignerStep ());
129+
}
127130
// end monodroid specific
128131
pipeline.AppendStep (new RegenerateGuidStep ());
129132
pipeline.AppendStep (new OutputStepWithTimestamps ());

src/Xamarin.Android.Build.Tasks/Linker/MonoDroid.Tuner/LinkerOptions.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ class LinkerOptions
2525
public bool AddKeepAlives { get; set; }
2626
public bool PreserveJniMarshalMethods { get; set; }
2727
public bool DeterministicOutput { get; set; }
28+
public bool LinkResources { get; set; }
2829
}
2930
}

src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ILLink.targets

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@ This file contains the .NET 5-specific targets to customize ILLink
5959
Condition=" '$(_ProguardProjectConfiguration)' != '' ">
6060
<_ExtraTrimmerArgs>$(_ExtraTrimmerArgs) --custom-data ProguardConfiguration="$(_ProguardProjectConfiguration)"</_ExtraTrimmerArgs>
6161
</PropertyGroup>
62+
<PropertyGroup
63+
Condition=" '$(AndroidLinkResources)' != '' ">
64+
<_ExtraTrimmerArgs>$(_ExtraTrimmerArgs) --custom-data AndroidLinkResources="$(AndroidLinkResources)"</_ExtraTrimmerArgs>
65+
</PropertyGroup>
6266
<PropertyGroup
6367
Condition=" '$(LinkerDumpDependencies)' == 'true' ">
6468
<_ExtraTrimmerArgs>--dump-dependencies $(_ExtraTrimmerArgs)"</_ExtraTrimmerArgs>

src/Xamarin.Android.Build.Tasks/Tasks/LinkAssemblies.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public class LinkAssemblies : AndroidTask, ML.ILogger
5555

5656
public bool Deterministic { get; set; }
5757

58+
public bool LinkResources { get; set; }
59+
5860
IEnumerable<AssemblyDefinition> GetRetainAssemblies (DirectoryAssemblyResolver res)
5961
{
6062
List<AssemblyDefinition> retainList = null;
@@ -105,6 +107,7 @@ bool Execute (DirectoryAssemblyResolver res)
105107
options.AddKeepAlives = AddKeepAlives;
106108
options.PreserveJniMarshalMethods = PreserveJniMarshalMethods;
107109
options.DeterministicOutput = Deterministic;
110+
options.LinkResources = LinkResources;
108111

109112
var skiplist = new List<string> ();
110113

src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/Tasks/LinkerTests.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,7 @@ public void RemoveDesigner ()
199199
IsRelease = true,
200200
};
201201
proj.SetProperty ("AndroidEnableAssemblyCompression", "False");
202+
proj.SetProperty ("AndroidLinkResources", "True");
202203
string assemblyName = proj.ProjectName;
203204
using (var b = CreateApkBuilder ()) {
204205
Assert.IsTrue (b.Build (proj), "build should have succeeded.");

src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,6 +849,7 @@ because xbuild doesn't support framework reference assemblies.
849849
<Target Name="_CreatePropertiesCache" DependsOnTargets="_SetupDesignTimeBuildForBuild;_SetLatestTargetFrameworkVersion;_ResolveMonoAndroidSdks">
850850
<PropertyGroup>
851851
<AndroidAddKeepAlives Condition="'$(AndroidAddKeepAlives)' == '' And '$(AndroidIncludeDebugSymbols)' != 'True'">True</AndroidAddKeepAlives>
852+
<AndroidLinkResources Condition="'$(AndroidLinkResources)' == '' And '$(AndroidIncludeDebugSymbols)' != 'True'">False</AndroidLinkResources>
852853
<_AndroidBuildPropertiesCacheExists Condition=" Exists('$(_AndroidBuildPropertiesCache)') ">True</_AndroidBuildPropertiesCacheExists>
853854
<_NuGetAssetsFile Condition=" Exists('$(ProjectLockFile)') ">$(ProjectLockFile)</_NuGetAssetsFile>
854855
<_NuGetAssetsFile Condition=" '$(_NuGetAssetsFile)' == '' and Exists('packages.config') ">packages.config</_NuGetAssetsFile>
@@ -867,6 +868,7 @@ because xbuild doesn't support framework reference assemblies.
867868
<_PropertyCacheItems Include="AndroidEnableProfiledAot=$(AndroidEnableProfiledAot)" />
868869
<_PropertyCacheItems Include="AndroidDexTool=$(AndroidDexTool)" />
869870
<_PropertyCacheItems Include="AndroidLinkTool=$(AndroidLinkTool)" />
871+
<_PropertyCacheItems Include="AndroidLinkResources=$(AndroidLinkResources)" />
870872
<_PropertyCacheItems Include="AndroidPackageFormat=$(AndroidPackageFormat)" />
871873
<_PropertyCacheItems Include="EmbedAssembliesIntoApk=$(EmbedAssembliesIntoApk)" />
872874
<_PropertyCacheItems Include="AndroidLinkMode=$(AndroidLinkMode)" />

src/Xamarin.Android.Build.Tasks/Xamarin.Android.Legacy.targets

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -399,7 +399,7 @@ projects. .NET 5 projects will not import this file.
399399

400400
<Target Name="_ConvertDebuggingFiles"
401401
Inputs="$(OutDir)$(TargetFileName);$(_IntermediatePdbFile)"
402-
Outputs="$(OutDir)$(TargetFileName).mdb"
402+
Outputs="$(OutDir)$(TargetFileName).mdb"
403403
DependsOnTargets="_ValidateAndroidPackageProperties">
404404
<ConvertDebuggingFiles Files="$(OutDir)$(TargetFileName)" />
405405
<Touch Files="$(OutDir)$(TargetFileName).mdb" />
@@ -638,6 +638,7 @@ projects. .NET 5 projects will not import this file.
638638
LinkDescriptions="@(LinkDescription)"
639639
ProguardConfiguration="$(_ProguardProjectConfiguration)"
640640
AddKeepAlives="$(AndroidAddKeepAlives)"
641+
LinkResources="$(AndroidLinkResources)"
641642
PreserveJniMarshalMethods="$(AndroidGenerateJniMarshalMethods)"
642643
EnableProguard="$(AndroidEnableProguard)"
643644
Deterministic="$(Deterministic)"

0 commit comments

Comments
 (0)