in utils/SkiaSharpGenerator/BaseTool.cs [47:92]
protected void ParseSkiaHeaders()
{
Log?.LogVerbose("Parsing skia headers...");
var options = new CppParserOptions();
foreach (var header in config.IncludeDirs)
{
var path = Path.Combine(SkiaRoot, header);
options.IncludeFolders.Add(path);
}
var headers = new List<string>();
foreach (var header in config.Headers)
{
var path = Path.Combine(SkiaRoot, header.Key);
options.IncludeFolders.Add(path);
foreach (var filter in header.Value)
{
headers.AddRange(Directory.EnumerateFiles(path, filter));
}
}
foreach (var filter in config.Exclude.Files)
{
excludedFiles.AddRange(Directory.EnumerateFiles(SkiaRoot, filter));
}
foreach (var filter in config.Exclude.Types)
{
excludedTypes.Add(filter);
excludedTypes.Add(filter + "*");
excludedTypes.Add(filter + "**");
}
foreach (var f in excludedFiles)
Log?.LogVerbose("Skipping everything in: " + f);
compilation = CppParser.ParseFiles(headers, options);
if (compilation == null || compilation.HasErrors)
{
Log?.LogError("Parsing headers failed.");
throw new Exception("Parsing headers failed.");
}
}