|
|
|
@ -20,7 +20,6 @@ namespace CppSharp |
|
|
|
{ |
|
|
|
{ |
|
|
|
public class Driver |
|
|
|
public class Driver |
|
|
|
{ |
|
|
|
{ |
|
|
|
public IDiagnostics Diagnostics { get; private set; } |
|
|
|
|
|
|
|
public DriverOptions Options { get; private set; } |
|
|
|
public DriverOptions Options { get; private set; } |
|
|
|
public ParserOptions ParserOptions { get; set; } |
|
|
|
public ParserOptions ParserOptions { get; set; } |
|
|
|
public Project Project { get; private set; } |
|
|
|
public Project Project { get; private set; } |
|
|
|
@ -29,10 +28,9 @@ namespace CppSharp |
|
|
|
|
|
|
|
|
|
|
|
public bool HasCompilationErrors { get; set; } |
|
|
|
public bool HasCompilationErrors { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
public Driver(DriverOptions options, IDiagnostics diagnostics) |
|
|
|
public Driver(DriverOptions options) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Options = options; |
|
|
|
Options = options; |
|
|
|
Diagnostics = diagnostics; |
|
|
|
|
|
|
|
Project = new Project(); |
|
|
|
Project = new Project(); |
|
|
|
ParserOptions = new ParserOptions(); |
|
|
|
ParserOptions = new ParserOptions(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -70,7 +68,7 @@ namespace CppSharp |
|
|
|
{ |
|
|
|
{ |
|
|
|
ValidateOptions(); |
|
|
|
ValidateOptions(); |
|
|
|
ParserOptions.SetupIncludes(); |
|
|
|
ParserOptions.SetupIncludes(); |
|
|
|
Context = new BindingContext(Diagnostics, Options, ParserOptions); |
|
|
|
Context = new BindingContext(Options, ParserOptions); |
|
|
|
Generator = CreateGeneratorFromKind(Options.GeneratorKind); |
|
|
|
Generator = CreateGeneratorFromKind(Options.GeneratorKind); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -473,31 +471,29 @@ namespace CppSharp |
|
|
|
public static void Run(ILibrary library) |
|
|
|
public static void Run(ILibrary library) |
|
|
|
{ |
|
|
|
{ |
|
|
|
var options = new DriverOptions(); |
|
|
|
var options = new DriverOptions(); |
|
|
|
|
|
|
|
var driver = new Driver(options); |
|
|
|
var Log = new ConsoleDiagnostics(); |
|
|
|
|
|
|
|
var driver = new Driver(options, Log); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
library.Setup(driver); |
|
|
|
library.Setup(driver); |
|
|
|
|
|
|
|
|
|
|
|
driver.Setup(); |
|
|
|
driver.Setup(); |
|
|
|
|
|
|
|
|
|
|
|
if(driver.ParserOptions.Verbose) |
|
|
|
if(driver.ParserOptions.Verbose) |
|
|
|
Log.Level = DiagnosticKind.Debug; |
|
|
|
Diagnostics.Level = DiagnosticKind.Debug; |
|
|
|
|
|
|
|
|
|
|
|
if (!options.Quiet) |
|
|
|
if (!options.Quiet) |
|
|
|
Log.Message("Parsing libraries..."); |
|
|
|
Diagnostics.Message("Parsing libraries..."); |
|
|
|
|
|
|
|
|
|
|
|
if (!driver.ParseLibraries()) |
|
|
|
if (!driver.ParseLibraries()) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
if (!options.Quiet) |
|
|
|
if (!options.Quiet) |
|
|
|
Log.Message("Parsing code..."); |
|
|
|
Diagnostics.Message("Parsing code..."); |
|
|
|
|
|
|
|
|
|
|
|
driver.BuildParseOptions(); |
|
|
|
driver.BuildParseOptions(); |
|
|
|
|
|
|
|
|
|
|
|
if (!driver.ParseCode()) |
|
|
|
if (!driver.ParseCode()) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Log.Error("CppSharp has encountered an error while parsing code."); |
|
|
|
Diagnostics.Error("CppSharp has encountered an error while parsing code."); |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ -505,7 +501,7 @@ namespace CppSharp |
|
|
|
options.Modules.RemoveAll(m => m != options.SystemModule && !m.Units.GetGenerated().Any()); |
|
|
|
options.Modules.RemoveAll(m => m != options.SystemModule && !m.Units.GetGenerated().Any()); |
|
|
|
|
|
|
|
|
|
|
|
if (!options.Quiet) |
|
|
|
if (!options.Quiet) |
|
|
|
Log.Message("Processing code..."); |
|
|
|
Diagnostics.Message("Processing code..."); |
|
|
|
|
|
|
|
|
|
|
|
library.Preprocess(driver, driver.Context.ASTContext); |
|
|
|
library.Preprocess(driver, driver.Context.ASTContext); |
|
|
|
|
|
|
|
|
|
|
|
@ -515,7 +511,7 @@ namespace CppSharp |
|
|
|
library.Postprocess(driver, driver.Context.ASTContext); |
|
|
|
library.Postprocess(driver, driver.Context.ASTContext); |
|
|
|
|
|
|
|
|
|
|
|
if (!options.Quiet) |
|
|
|
if (!options.Quiet) |
|
|
|
Log.Message("Generating code..."); |
|
|
|
Diagnostics.Message("Generating code..."); |
|
|
|
|
|
|
|
|
|
|
|
var outputs = driver.GenerateCode(); |
|
|
|
var outputs = driver.GenerateCode(); |
|
|
|
|
|
|
|
|
|
|
|
|