Skip to content

Commit 1a891ab

Browse files
committed
[XABT] Use a response file for D8 task.
1 parent 78f8863 commit 1a891ab

File tree

1 file changed

+45
-3
lines changed
  • src/Xamarin.Android.Build.Tasks/Tasks

1 file changed

+45
-3
lines changed

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

+45-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using System.IO;
55
using Xamarin.Android.Tools;
66
using Microsoft.Android.Build.Tasks;
7+
using System.Text;
78

89
namespace Xamarin.Android.Tasks
910
{
@@ -47,6 +48,44 @@ protected override string GenerateCommandLineCommands ()
4748
return GetCommandLineBuilder ().ToString ();
4849
}
4950

51+
protected override string GenerateResponseFileCommands ()
52+
{
53+
var cmd = new CommandLineBuilder ();
54+
55+
var injars = new List<string> ();
56+
var libjars = new List<string> ();
57+
if (AlternativeJarLibrariesToEmbed?.Length > 0) {
58+
Log.LogDebugMessage (" processing AlternativeJarLibrariesToEmbed...");
59+
foreach (var jar in AlternativeJarLibrariesToEmbed) {
60+
injars.Add (jar.ItemSpec);
61+
}
62+
} else if (JavaLibrariesToEmbed != null) {
63+
Log.LogDebugMessage (" processing ClassesZip, JavaLibrariesToEmbed...");
64+
if (!string.IsNullOrEmpty (ClassesZip) && File.Exists (ClassesZip)) {
65+
injars.Add (ClassesZip);
66+
}
67+
foreach (var jar in JavaLibrariesToEmbed) {
68+
injars.Add (jar.ItemSpec);
69+
}
70+
}
71+
libjars.Add (JavaPlatformJarPath);
72+
if (JavaLibrariesToReference != null) {
73+
foreach (var jar in JavaLibrariesToReference) {
74+
libjars.Add (jar.ItemSpec);
75+
}
76+
}
77+
78+
//foreach (var jar in libjars)
79+
// cmd.AppendSwitchIfNotNull ("--lib ", jar);
80+
81+
foreach (var jar in injars)
82+
cmd.AppendFileNameIfNotNull (jar);
83+
84+
return cmd.ToString ();
85+
}
86+
87+
protected override Encoding ResponseFileEncoding => Encoding.UTF8;
88+
5089
protected virtual string MainClass => "com.android.tools.r8.D8";
5190

5291
protected int MinSdkVersion { get; set; }
@@ -81,6 +120,8 @@ protected virtual CommandLineBuilder GetCommandLineBuilder ()
81120
if (!EnableDesugar)
82121
cmd.AppendSwitch ("--no-desugaring");
83122

123+
cmd.AppendSwitchIfNotNull ("--output ", OutputDirectory);
124+
84125
var injars = new List<string> ();
85126
var libjars = new List<string> ();
86127
if (AlternativeJarLibrariesToEmbed?.Length > 0) {
@@ -104,11 +145,12 @@ protected virtual CommandLineBuilder GetCommandLineBuilder ()
104145
}
105146
}
106147

107-
cmd.AppendSwitchIfNotNull ("--output ", OutputDirectory);
108148
foreach (var jar in libjars)
109149
cmd.AppendSwitchIfNotNull ("--lib ", jar);
110-
foreach (var jar in injars)
111-
cmd.AppendFileNameIfNotNull (jar);
150+
151+
//foreach (var jar in injars)
152+
// cmd.AppendFileNameIfNotNull (jar);
153+
112154

113155
if (MapDiagnostics != null) {
114156
foreach (var diagnostic in MapDiagnostics) {

0 commit comments

Comments
 (0)