Browse Source

Fixed the parse options to only collect all headers if it's a unity build.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/658/head
Dimitar Dobrev 10 years ago
parent
commit
62e4ab93b1
  1. 10
      src/Generator/Driver.cs

10
src/Generator/Driver.cs

@ -141,7 +141,7 @@ namespace CppSharp
} }
} }
public ParserOptions BuildParserOptions() public ParserOptions BuildParserOptions(SourceFile file = null)
{ {
var options = new ParserOptions var options = new ParserOptions
{ {
@ -200,7 +200,8 @@ namespace CppSharp
options.addLibraryDirs(lib); options.addLibraryDirs(lib);
} }
foreach (var module in Options.Modules) foreach (var module in Options.Modules.Where(
m => file == null || m.Headers.Contains(file.Path)))
{ {
foreach (var include in module.IncludeDirs) foreach (var include in module.IncludeDirs)
options.addIncludeDirs(include); options.addIncludeDirs(include);
@ -237,8 +238,11 @@ namespace CppSharp
foreach (var header in Options.Modules.SelectMany(m => m.Headers)) foreach (var header in Options.Modules.SelectMany(m => m.Headers))
{ {
var source = Project.AddFile(header); var source = Project.AddFile(header);
source.Options = BuildParserOptions(); if (!Options.UnityBuild)
source.Options = BuildParserOptions(source);
} }
if (Options.UnityBuild)
Project.Sources[0].Options = BuildParserOptions();
} }
public ParserTargetInfo TargetInfo { get; set; } public ParserTargetInfo TargetInfo { get; set; }

Loading…
Cancel
Save