Skip to content

Commit fb31a85

Browse files
committed
Fixed code generator to generate system module even in single file per unit mode.
1 parent 5a1db52 commit fb31a85

File tree

1 file changed

+21
-15
lines changed

1 file changed

+21
-15
lines changed

src/Generator/Generator.cs

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,10 +77,18 @@ public virtual List<GeneratorOutput> Generate()
7777

7878
if (Context.Options.IsCSharpGenerator &&
7979
Context.Options.GenerateSingleCSharpFile)
80-
GenerateSingleTemplate(outputs);
80+
{
81+
foreach (var module in Context.Options.Modules)
82+
GenerateModuleTemplate(module);
83+
}
8184
else
85+
{
8286
GenerateTemplates(outputs, units.Where(u => !u.IsSystemHeader));
8387

88+
if (Context.Options.SystemModule != null)
89+
outputs.Add(GenerateModuleTemplate(Context.Options.SystemModule));
90+
}
91+
8492
return outputs;
8593
}
8694

@@ -109,24 +117,22 @@ private void GenerateTemplates(List<GeneratorOutput> outputs, IEnumerable<Transl
109117
}
110118
}
111119

112-
private void GenerateSingleTemplate(ICollection<GeneratorOutput> outputs)
120+
private GeneratorOutput GenerateModuleTemplate(Module module)
113121
{
114-
foreach (var module in Context.Options.Modules)
122+
var output = new GeneratorOutput
115123
{
116-
var output = new GeneratorOutput
124+
TranslationUnit = new TranslationUnit
117125
{
118-
TranslationUnit = new TranslationUnit
119-
{
120-
FilePath = $"{module.LibraryName}.cs",
121-
Module = module
122-
},
123-
Outputs = Generate(module.Units.GetGenerated())
124-
};
125-
output.Outputs[0].Process();
126-
outputs.Add(output);
126+
FilePath = $"{module.LibraryName}.cs",
127+
Module = module
128+
},
129+
Outputs = Generate(module.Units.GetGenerated())
130+
};
131+
output.Outputs[0].Process();
127132

128-
OnUnitGenerated(output);
129-
}
133+
OnUnitGenerated(output);
134+
135+
return output;
130136
}
131137

132138
/// <summary>

0 commit comments

Comments
 (0)