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 @@ -32,18 +32,6 @@ namespace CppSharp
public ASTContext ASTContext { 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)
{
Options = options;
@ -272,6 +260,7 @@ namespace CppSharp @@ -272,6 +260,7 @@ namespace CppSharp
TranslationUnitPasses.AddPass(new CheckIgnoredDeclsPass());
TranslationUnitPasses.AddPass(new CheckFlagEnumsPass());
TranslationUnitPasses.AddPass(new CheckDuplicatedNamesPass());
TranslationUnitPasses.AddPass(new RenameRootNamespacesPass());
if (Options.IsCSharpGenerator && Options.GenerateDefaultValuesForArguments)
{
TranslationUnitPasses.AddPass(new HandleDefaultParamValuesPass());
@ -295,8 +284,6 @@ namespace CppSharp @@ -295,8 +284,6 @@ namespace CppSharp
if (Options.GeneratePropertiesAdvanced)
TranslationUnitPasses.AddPass(new GetterSetterToPropertyAdvancedPass());
TranslationUnitPasses.AddPass(new RenameRootNamespacesPass());
}
public void ProcessCode()

13
src/Generator/Passes/RenameRootNamespaces.cs

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

Loading…
Cancel
Save