Browse Source

Cleaned up the additional parser options after parsing headers.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1005/head
Dimitar Dobrev 9 years ago
parent
commit
3b43a0b168
  1. 35
      src/Generator/Driver.cs

35
src/Generator/Driver.cs

@ -126,25 +126,32 @@ namespace CppSharp
if (Options.UnityBuild) if (Options.UnityBuild)
{ {
var parserOptions = ParserOptions.BuildForSourceFile(Options.Modules); using (var parserOptions = ParserOptions.BuildForSourceFile(
using (var result = parser.ParseSourceFiles(sourceFiles, parserOptions)) Options.Modules))
Context.TargetInfo = result.TargetInfo; {
if (string.IsNullOrEmpty(ParserOptions.TargetTriple)) using (var result = parser.ParseSourceFiles(
ParserOptions.TargetTriple = parserOptions.TargetTriple; sourceFiles, parserOptions))
Context.TargetInfo = result.TargetInfo;
if (string.IsNullOrEmpty(ParserOptions.TargetTriple))
ParserOptions.TargetTriple = parserOptions.TargetTriple;
}
} }
else else
{ {
foreach (var sourceFile in sourceFiles) foreach (var sourceFile in sourceFiles)
{ {
var parserOptions = ParserOptions.BuildForSourceFile( using (var parserOptions = ParserOptions.BuildForSourceFile(
Options.Modules, sourceFile); Options.Modules, sourceFile))
using (ParserResult result = parser.ParseSourceFile(sourceFile, parserOptions)) {
if (Context.TargetInfo == null) using (ParserResult result = parser.ParseSourceFile(
Context.TargetInfo = result.TargetInfo; sourceFile, parserOptions))
else if (Context.TargetInfo == null)
result.TargetInfo.Dispose(); Context.TargetInfo = result.TargetInfo;
if (string.IsNullOrEmpty(ParserOptions.TargetTriple)) else
ParserOptions.TargetTriple = parserOptions.TargetTriple; result.TargetInfo.Dispose();
if (string.IsNullOrEmpty(ParserOptions.TargetTriple))
ParserOptions.TargetTriple = parserOptions.TargetTriple;
}
} }
} }

Loading…
Cancel
Save