Browse Source

Fixed a bug - library dirs of modules were not read at all.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/661/head
Dimitar Dobrev 10 years ago
parent
commit
3c82cf90c7
  1. 30
      src/Generator/Driver.cs

30
src/Generator/Driver.cs

@ -230,8 +230,8 @@ namespace CppSharp
foreach (var undefine in module.Undefines) foreach (var undefine in module.Undefines)
options.addUndefines(undefine); options.addUndefines(undefine);
foreach (var library in module.Libraries) foreach (var libraryDir in module.LibraryDirs)
options.addLibraryDirs(library); options.addLibraryDirs(libraryDir);
} }
return options; return options;
@ -267,22 +267,28 @@ namespace CppSharp
public bool ParseLibraries() public bool ParseLibraries()
{ {
foreach (var library in Options.Modules.SelectMany(m => m.Libraries)) foreach (var module in Options.Modules)
{ {
if (this.Symbols.Libraries.Any(l => l.FileName == library)) foreach (var libraryDir in module.LibraryDirs)
continue; Options.addLibraryDirs(libraryDir);
var parser = new ClangParser(); foreach (var library in module.Libraries)
parser.LibraryParsed += OnFileParsed;
using (var res = parser.ParseLibrary(library, Options))
{ {
if (res.Kind != ParserResultKind.Success) if (Symbols.Libraries.Any(l => l.FileName == library))
continue; continue;
Symbols.Libraries.Add(ClangParser.ConvertLibrary(res.Library)); var parser = new ClangParser();
parser.LibraryParsed += OnFileParsed;
res.Library.Dispose(); using (var res = parser.ParseLibrary(library, Options))
{
if (res.Kind != ParserResultKind.Success)
continue;
Symbols.Libraries.Add(ClangParser.ConvertLibrary(res.Library));
res.Library.Dispose();
}
} }
} }

Loading…
Cancel
Save