Browse Source

Updated the CppParser bindings generator.

pull/86/head
triton 12 years ago
parent
commit
4ca3ee08a1
  1. 32
      src/CppParser/Bindings/ParserGen.cs

32
src/CppParser/Bindings/ParserGen.cs

@ -1,13 +1,14 @@
using CppSharp.AST; using System;
using CppSharp.AST;
using CppSharp.Generators; using CppSharp.Generators;
namespace CppSharp namespace CppSharp
{ {
class ParserGen : ILibrary class ParserGen : ILibrary
{ {
private readonly LanguageGeneratorKind Kind; private readonly GeneratorKind Kind;
public ParserGen(LanguageGeneratorKind kind) public ParserGen(GeneratorKind kind)
{ {
Kind = kind; Kind = kind;
} }
@ -15,17 +16,17 @@ namespace CppSharp
public void Setup(Driver driver) public void Setup(Driver driver)
{ {
var options = driver.Options; var options = driver.Options;
options.LibraryName = "CppSharp"; options.LibraryName = "CppSharp.CppParser.dll";
options.GeneratorKind = Kind; options.GeneratorKind = Kind;
options.Headers.Add("AST.h"); options.Headers.Add("AST.h");
options.Headers.Add("CppParser.h"); options.Headers.Add("CppParser.h");
options.IncludeDirs.Add("../../../src/CppParser/"); options.IncludeDirs.Add("../../../../src/CppParser/");
options.Libraries.Add("CppSharp.CppParser.lib"); options.Libraries.Add("CppSharp.CppParser.lib");
options.LibraryDirs.Add("."); options.LibraryDirs.Add(".");
options.OutputDir = "../../../src/CppParser/Bindings/"; options.OutputDir = "../../../../src/CppParser/Bindings/";
options.OutputDir += Kind.ToString(); options.OutputDir += Kind.ToString();
options.GenerateLibraryNamespace = false; options.GenerateLibraryNamespace = false;
//options.CheckSymbols = false; options.CheckSymbols = false;
} }
public void SetupPasses(Driver driver) public void SetupPasses(Driver driver)
@ -33,7 +34,7 @@ namespace CppSharp
} }
public void Preprocess(Driver driver, Library lib) public void Preprocess(Driver driver, ASTContext lib)
{ {
lib.SetClassAsValueType("CppSharp::ParserOptions"); lib.SetClassAsValueType("CppSharp::ParserOptions");
lib.SetClassAsValueType("CppSharp::ParserDiagnostic"); lib.SetClassAsValueType("CppSharp::ParserDiagnostic");
@ -42,15 +43,16 @@ namespace CppSharp
lib.RenameNamespace("CppSharp::CppParser", "Parser"); lib.RenameNamespace("CppSharp::CppParser", "Parser");
} }
public void Postprocess(Library lib)
{
}
public static void Main(string[] args) public static void Main(string[] args)
{ {
ConsoleDriver.Run(new ParserGen(LanguageGeneratorKind.CLI)); #if CLI
ConsoleDriver.Run(new ParserGen(LanguageGeneratorKind.CSharp)); Console.WriteLine("Generating the C++/CLI parser bindings...");
ConsoleDriver.Run(new ParserGen(GeneratorKind.CLI));
Console.WriteLine();
#endif
Console.WriteLine("Generating the C# parser bindings...");
ConsoleDriver.Run(new ParserGen(GeneratorKind.CSharp));
} }
} }
} }

Loading…
Cancel
Save