diff --git a/examples/SDL/SDL.cs b/examples/SDL/SDL.cs index d044577e..63c75cbc 100644 --- a/examples/SDL/SDL.cs +++ b/examples/SDL/SDL.cs @@ -19,11 +19,11 @@ namespace CppSharp public void SetupPasses(Driver driver) { - driver.TranslationUnitPasses.RemovePrefix("SDL_"); - driver.TranslationUnitPasses.RemovePrefix("SCANCODE_"); - driver.TranslationUnitPasses.RemovePrefix("SDLK_"); - driver.TranslationUnitPasses.RemovePrefix("KMOD_"); - driver.TranslationUnitPasses.RemovePrefix("LOG_CATEGORY_"); + driver.Context.TranslationUnitPasses.RemovePrefix("SDL_"); + driver.Context.TranslationUnitPasses.RemovePrefix("SCANCODE_"); + driver.Context.TranslationUnitPasses.RemovePrefix("SDLK_"); + driver.Context.TranslationUnitPasses.RemovePrefix("KMOD_"); + driver.Context.TranslationUnitPasses.RemovePrefix("LOG_CATEGORY_"); } public void Preprocess(Driver driver, ASTContext ctx) diff --git a/src/Generator.Tests/AST/TestAST.cs b/src/Generator.Tests/AST/TestAST.cs index d2a19b51..a2b62500 100644 --- a/src/Generator.Tests/AST/TestAST.cs +++ b/src/Generator.Tests/AST/TestAST.cs @@ -5,6 +5,7 @@ using CppSharp.AST.Extensions; using NUnit.Framework; using CppSharp.Generators.CSharp; using System; +using CppSharp.Generators; namespace CppSharp.Generator.Tests.AST { @@ -313,8 +314,9 @@ namespace CppSharp.Generator.Tests.AST [Test] public void TestAmbiguity() { - new CheckAmbiguousFunctions { Driver = new Driver(new DriverOptions(), new TextDiagnosticPrinter()) } - .VisitLibrary(AstContext); + var bindingContext = new BindingContext(new TextDiagnosticPrinter(), new DriverOptions()); + new CleanUnitPass { Context = bindingContext }.VisitLibrary(AstContext); + new CheckAmbiguousFunctions { Context = bindingContext }.VisitLibrary(AstContext); Assert.IsTrue(AstContext.FindClass("HasAmbiguousFunctions").Single().FindMethod("ambiguous").IsAmbiguous); } diff --git a/src/Generator.Tests/ASTTestFixture.cs b/src/Generator.Tests/ASTTestFixture.cs index 43ea5862..a768e9e6 100644 --- a/src/Generator.Tests/ASTTestFixture.cs +++ b/src/Generator.Tests/ASTTestFixture.cs @@ -20,12 +20,14 @@ namespace CppSharp.Generator.Tests Options.Headers.AddRange(files); Driver = new Driver(Options, new TextDiagnosticPrinter()); - Driver.SetupIncludes(); + foreach (var module in Driver.Options.Modules) + module.LibraryName = "Test"; + Driver.Setup(); Driver.BuildParseOptions(); if (!Driver.ParseCode()) throw new Exception("Error parsing the code"); - AstContext = Driver.ASTContext; + AstContext = Driver.Context.ASTContext; } } } diff --git a/src/Generator.Tests/Passes/TestPasses.cs b/src/Generator.Tests/Passes/TestPasses.cs index ed15f55c..48b703fd 100644 --- a/src/Generator.Tests/Passes/TestPasses.cs +++ b/src/Generator.Tests/Passes/TestPasses.cs @@ -20,7 +20,7 @@ namespace CppSharp.Generator.Tests.Passes public void Setup() { ParseLibrary("Passes.h"); - passBuilder = new PassBuilder(Driver); + passBuilder = new PassBuilder(Driver.Context); } [Test] @@ -207,7 +207,7 @@ namespace CppSharp.Generator.Tests.Passes private string TypePrinterDelegate(CppSharp.AST.Type type) { - return type.Visit(new CSharpTypePrinter(Driver)).Type; + return type.Visit(new CSharpTypePrinter(Driver.Context)).Type; } [Test] diff --git a/src/Generator.Tests/ReadNativeDependenciesTest.cs b/src/Generator.Tests/ReadNativeDependenciesTest.cs index cad0497b..b7b1242b 100644 --- a/src/Generator.Tests/ReadNativeDependenciesTest.cs +++ b/src/Generator.Tests/ReadNativeDependenciesTest.cs @@ -41,8 +41,11 @@ namespace CppSharp.Generator.Tests driverOptions.addLibraryDirs(GeneratorTest.GetTestsDirectory("Native")); driverOptions.Libraries.Add(library); var driver = new Driver(driverOptions, new TextDiagnosticPrinter()); + foreach (var module in driver.Options.Modules) + module.LibraryName = "Test"; + driver.Setup(); Assert.IsTrue(driver.ParseLibraries()); - var dependencies = driver.Symbols.Libraries[0].Dependencies; + var dependencies = driver.Context.Symbols.Libraries[0].Dependencies; return dependencies; } } diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 7904a6b3..b3134e2b 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -226,8 +226,6 @@ namespace CppSharp Project.Sources[0].Options = BuildParserOptions(); } - public ParserTargetInfo TargetInfo { get; set; } - public void SortModulesByDependencies() { if (Options.Modules.All(m => m.Libraries.Any())) @@ -504,7 +502,7 @@ namespace CppSharp return; } - new CleanUnitPass().VisitLibrary(driver.Context.ASTContext); + new CleanUnitPass { Context = driver.Context }.VisitLibrary(driver.Context.ASTContext); options.Modules.RemoveAll(m => m != options.SystemModule && !m.Units.GetGenerated().Any()); if (!options.Quiet) @@ -543,7 +541,7 @@ namespace CppSharp } driver.Generator.Dispose(); - driver.TargetInfo.Dispose(); + driver.Context.TargetInfo.Dispose(); } } } \ No newline at end of file diff --git a/src/Generator/Passes/CheckIgnoredDecls.cs b/src/Generator/Passes/CheckIgnoredDecls.cs index 7e5d31f2..56a67918 100644 --- a/src/Generator/Passes/CheckIgnoredDecls.cs +++ b/src/Generator/Passes/CheckIgnoredDecls.cs @@ -102,7 +102,7 @@ namespace CppSharp.Passes public override bool VisitFunctionDecl(Function function) { - if (!VisitDeclaration(function)) + if (!VisitDeclaration(function) || function.IsSynthetized) return false; var ret = function.ReturnType; diff --git a/src/Generator/Passes/CleanUnitPass.cs b/src/Generator/Passes/CleanUnitPass.cs index 84245ed7..bd8fd036 100644 --- a/src/Generator/Passes/CleanUnitPass.cs +++ b/src/Generator/Passes/CleanUnitPass.cs @@ -6,10 +6,6 @@ namespace CppSharp.Passes { public class CleanUnitPass : TranslationUnitPass { - public CleanUnitPass() - { - } - public override bool VisitTranslationUnit(TranslationUnit unit) { if (!base.VisitTranslationUnit(unit)) diff --git a/tests/CSharp/CSharp.cs b/tests/CSharp/CSharp.cs index c1ac6966..62cddbdd 100644 --- a/tests/CSharp/CSharp.cs +++ b/tests/CSharp/CSharp.cs @@ -154,8 +154,8 @@ namespace CppSharp.Tests // To ensure that calls to constructors in conversion operators // are not ambiguous with multiple inheritance pass enabled. driver.Options.GenerateConversionOperators = true; - driver.TranslationUnitPasses.AddPass(new TestAttributesPass()); - driver.TranslationUnitPasses.AddPass(new CheckMacroPass()); + driver.Context.TranslationUnitPasses.AddPass(new TestAttributesPass()); + driver.Context.TranslationUnitPasses.AddPass(new CheckMacroPass()); driver.Options.MarshalCharAsManagedChar = true; driver.Options.GenerateDefaultValuesForArguments = true; } @@ -176,7 +176,7 @@ namespace CppSharp.Tests { new CaseRenamePass( RenameTargets.Function | RenameTargets.Method | RenameTargets.Property | RenameTargets.Delegate | RenameTargets.Variable, - RenameCasePattern.UpperCamelCase).VisitLibrary(driver.ASTContext); + RenameCasePattern.UpperCamelCase).VisitLibrary(driver.Context.ASTContext); } public static void Main(string[] args) diff --git a/tests/NamespacesDerived/NamespacesDerived.cs b/tests/NamespacesDerived/NamespacesDerived.cs index 51a8547b..c03aa728 100644 --- a/tests/NamespacesDerived/NamespacesDerived.cs +++ b/tests/NamespacesDerived/NamespacesDerived.cs @@ -37,7 +37,7 @@ namespace CppSharp.Tests { new CaseRenamePass( RenameTargets.Function | RenameTargets.Method | RenameTargets.Property | RenameTargets.Delegate | RenameTargets.Variable, - RenameCasePattern.UpperCamelCase).VisitLibrary(driver.ASTContext); + RenameCasePattern.UpperCamelCase).VisitLibrary(driver.Context.ASTContext); } } diff --git a/tests/VTables/VTables.cs b/tests/VTables/VTables.cs index a54fd7df..44319d74 100644 --- a/tests/VTables/VTables.cs +++ b/tests/VTables/VTables.cs @@ -14,8 +14,8 @@ namespace CppSharp.Tests public override void SetupPasses(Driver driver) { - driver.TranslationUnitPasses.RenameDeclsUpperCase(RenameTargets.Any); - driver.TranslationUnitPasses.AddPass(new FunctionToInstanceMethodPass()); + driver.Context.TranslationUnitPasses.RenameDeclsUpperCase(RenameTargets.Any); + driver.Context.TranslationUnitPasses.AddPass(new FunctionToInstanceMethodPass()); } public override void Preprocess(Driver driver, ASTContext ctx)