Browse Source

Merge pull request #468 from ddobrev/master

Simplified and moved the pass for translation units renamed to name-spaces
pull/469/head
João Matos 10 years ago
parent
commit
21bc0e8ac0
  1. 15
      src/Generator/Driver.cs
  2. 13
      src/Generator/Passes/RenameRootNamespaces.cs

15
src/Generator/Driver.cs

@ -32,18 +32,6 @@ namespace CppSharp
public ASTContext ASTContext { get; private set; } public ASTContext ASTContext { get; private set; }
public SymbolContext Symbols { get; private set; } public SymbolContext Symbols { get; private set; }
public struct TranslationUnitRenameInfo
{
public string translationUnit;
public string rootNamespaceName;
}
public static Dictionary<string, TranslationUnitRenameInfo> RootNamespaceRenames { get; private set; }
static Driver()
{
Driver.RootNamespaceRenames = new Dictionary<string, TranslationUnitRenameInfo>();
}
public Driver(DriverOptions options, IDiagnosticConsumer diagnostics) public Driver(DriverOptions options, IDiagnosticConsumer diagnostics)
{ {
Options = options; Options = options;
@ -272,6 +260,7 @@ namespace CppSharp
TranslationUnitPasses.AddPass(new CheckIgnoredDeclsPass()); TranslationUnitPasses.AddPass(new CheckIgnoredDeclsPass());
TranslationUnitPasses.AddPass(new CheckFlagEnumsPass()); TranslationUnitPasses.AddPass(new CheckFlagEnumsPass());
TranslationUnitPasses.AddPass(new CheckDuplicatedNamesPass()); TranslationUnitPasses.AddPass(new CheckDuplicatedNamesPass());
TranslationUnitPasses.AddPass(new RenameRootNamespacesPass());
if (Options.IsCSharpGenerator && Options.GenerateDefaultValuesForArguments) if (Options.IsCSharpGenerator && Options.GenerateDefaultValuesForArguments)
{ {
TranslationUnitPasses.AddPass(new HandleDefaultParamValuesPass()); TranslationUnitPasses.AddPass(new HandleDefaultParamValuesPass());
@ -295,8 +284,6 @@ namespace CppSharp
if (Options.GeneratePropertiesAdvanced) if (Options.GeneratePropertiesAdvanced)
TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass()); TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass());
TranslationUnitPasses.AddPass(new RenameRootNamespacesPass());
} }
public void ProcessCode() public void ProcessCode()

13
src/Generator/Passes/RenameRootNamespaces.cs

@ -1,3 +1,4 @@
using System.Collections.Generic;
using CppSharp.AST; using CppSharp.AST;
namespace CppSharp.Passes namespace CppSharp.Passes
@ -14,21 +15,19 @@ namespace CppSharp.Passes
return false; return false;
var fileName = unit.TranslationUnit.FileName; var fileName = unit.TranslationUnit.FileName;
if (Driver.RootNamespaceRenames.ContainsKey(fileName)) if (rootNamespaceRenames.ContainsKey(fileName))
{ {
var rootNamespace = Driver.RootNamespaceRenames[fileName].rootNamespaceName; var rootNamespace = rootNamespaceRenames[fileName];
if (this.Driver.Options.OutputNamespace != rootNamespace) if (this.Driver.Options.OutputNamespace != rootNamespace)
unit.Name = rootNamespace; unit.Name = rootNamespace;
} }
else if (unit.GenerationKind == GenerationKind.Generate) else if (unit.GenerationKind == GenerationKind.Generate)
{ {
Driver.RootNamespaceRenames.Add(fileName, new Driver.TranslationUnitRenameInfo rootNamespaceRenames.Add(fileName, Driver.Options.OutputNamespace);
{
translationUnit = fileName,
rootNamespaceName = Driver.Options.OutputNamespace,
});
} }
return true; return true;
} }
private static readonly Dictionary<string, string> rootNamespaceRenames = new Dictionary<string, string>();
} }
} }

Loading…
Cancel
Save