Skip to content

Commit 201cdd7

Browse files
committed
[WIP] Don't generate empty include files
1 parent 1a9c01c commit 201cdd7

File tree

1 file changed

+24
-7
lines changed

1 file changed

+24
-7
lines changed

src/Xamarin.Android.Build.Tasks/Utilities/TypeMappingNativeAssemblyGenerator.cs

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,24 @@ protected override void WriteSymbols (StreamWriter output)
4949
output.WriteLine ();
5050
WriteHeaderField (output, "java_name_width", mappingData.JavaNameWidth);
5151

52+
bool haveAssemblyNames = mappingData.AssemblyNames.Count > 0;
53+
bool haveModules = mappingData.Modules.Count > 0;
54+
5255
output.WriteLine ();
53-
output.WriteLine ($"{Indent}.include{Indent}\"{Path.GetFileName (SharedIncludeFile)}\"");
54-
output.WriteLine ($"{Indent}.include{Indent}\"{Path.GetFileName (TypemapsIncludeFile)}\"");
56+
if (haveAssemblyNames) {
57+
output.WriteLine ($"{Indent}.include{Indent}\"{Path.GetFileName (SharedIncludeFile)}\"");
58+
} else {
59+
WriteCommentLine (output, $"No shared data present, {Path.GetFileName (SharedIncludeFile)} not generated");
60+
}
61+
62+
if (haveModules) {
63+
output.WriteLine ($"{Indent}.include{Indent}\"{Path.GetFileName (TypemapsIncludeFile)}\"");
64+
} else {
65+
WriteCommentLine (output, $"No modules defined, {Path.GetFileName (TypemapsIncludeFile)} not generated");
66+
}
5567
output.WriteLine ();
5668

57-
if (!sharedBitsWritten) {
69+
if (!sharedBitsWritten && haveAssemblyNames) {
5870
using (var fs = File.Open (SharedIncludeFile, FileMode.Create)) {
5971
using (var sharedOutput = new StreamWriter (fs, output.Encoding)) {
6072
WriteAssemblyNames (sharedOutput);
@@ -63,10 +75,14 @@ protected override void WriteSymbols (StreamWriter output)
6375
}
6476
}
6577

66-
using (var fs = File.Open (TypemapsIncludeFile, FileMode.Create)) {
67-
using (var mapOutput = new StreamWriter (fs, output.Encoding)) {
68-
WriteMapModules (output, mapOutput, "map_modules");
78+
if (haveModules) {
79+
using (var fs = File.Open (TypemapsIncludeFile, FileMode.Create)) {
80+
using (var mapOutput = new StreamWriter (fs, output.Encoding)) {
81+
WriteMapModules (output, mapOutput, "map_modules");
82+
}
6983
}
84+
} else {
85+
WriteMapModules (output, null, "map_modules");
7086
}
7187

7288
WriteJavaMap (output, "map_java");
@@ -128,7 +144,8 @@ void WriteMapModules (StreamWriter output, StreamWriter mapOutput, string symbol
128144

129145
string mapName = $"module{moduleCounter++}_managed_to_java";
130146
size += WriteStructure (output, fieldAlignBytes, () => WriteMapModule (output, mapName, mvid, data));
131-
WriteManagedMaps (mapOutput, mapName, data);
147+
if (mapOutput != null)
148+
WriteManagedMaps (mapOutput, mapName, data);
132149
}
133150

134151
WriteStructureSize (output, symbolName, size);

0 commit comments

Comments
 (0)