Browse Source

Extracted module lookup from CleanUnitPass.VisitTranslationUnit.

pull/742/head
Joao Matos 9 years ago
parent
commit
1df31e0dea
  1. 24
      src/Generator/Passes/CleanUnitPass.cs

24
src/Generator/Passes/CleanUnitPass.cs

@ -11,22 +11,26 @@ namespace CppSharp.Passes
if (!base.VisitTranslationUnit(unit)) if (!base.VisitTranslationUnit(unit))
return false; return false;
if (unit.IsSystemHeader) unit.Module = GetModule(unit);
{ unit.Module.Units.Add(unit);
unit.Module = Options.SystemModule;
// Try to get an include path that works from the original include
// directories paths
unit.IncludePath = GetIncludePath(unit.FilePath);
return true;
} }
else
Module GetModule(TranslationUnit unit)
{ {
if (unit.IsSystemHeader)
return Options.SystemModule;
var includeDir = Path.GetFullPath(Path.GetDirectoryName(unit.FilePath)); var includeDir = Path.GetFullPath(Path.GetDirectoryName(unit.FilePath));
unit.Module = Options.Modules.FirstOrDefault( return Options.Modules.FirstOrDefault(
m => m.IncludeDirs.Any(i => Path.GetFullPath(i) == includeDir)) ?? m => m.IncludeDirs.Any(i => Path.GetFullPath(i) == includeDir)) ??
Options.MainModule; Options.MainModule;
} }
unit.Module.Units.Add(unit);
// Try to get an include path that works from the original include directories paths
unit.IncludePath = GetIncludePath(unit.FilePath);
return true;
}
public override bool VisitDeclarationContext(DeclarationContext context) public override bool VisitDeclarationContext(DeclarationContext context)
{ {

Loading…
Cancel
Save