Browse Source

Removed unused STD enumerations from generation.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/985/head
Dimitar Dobrev 8 years ago
parent
commit
ae6a37359a
  1. 25
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  2. 24
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
  3. 25
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  4. 5
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  5. 24
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
  6. 2
      src/Generator/Generators/CSharp/CSharpSources.cs
  7. 2
      src/Generator/Passes/CleanCommentsPass.cs
  8. 12
      src/Generator/Passes/IgnoreSystemDeclarationsPass.cs
  9. 21
      src/Generator/Passes/MarkUsedClassInternalsPass.cs
  10. 23
      tests/CSharp/CSharp.cs

25
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs

@ -495,31 +495,6 @@ namespace Std @@ -495,31 +495,6 @@ namespace Std
public unsafe partial class BasicString<_CharT, _Traits, _Allocator> : IDisposable
{
internal enum ShortMask
{
ShortMask = 0
}
internal enum LongMask
{
LongMask = 0
}
internal enum MinCap
{
MinCap = 0
}
internal enum NWords
{
NWords = 0
}
internal enum Alignment
{
Alignment = 0
}
public global::System.IntPtr __Instance { get; protected set; }
protected int __PointerAdjustment;

24
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs

@ -641,15 +641,6 @@ namespace Std @@ -641,15 +641,6 @@ namespace Std
public unsafe partial class StringVal<_Val_types>
{
public enum BUF_SIZE
{
BUF_SIZE = 0
}
public enum ALLOC_MASK
{
ALLOC_MASK = 0
}
}
}
@ -711,11 +702,6 @@ namespace Std @@ -711,11 +702,6 @@ namespace Std
public unsafe partial class TreeVal<_Val_types>
{
public enum Redbl
{
Red = 0,
Black = 0
}
}
}
@ -736,16 +722,6 @@ namespace Std @@ -736,16 +722,6 @@ namespace Std
}
}
namespace Std
{
[Flags]
public enum CodecvtMode
{
ConsumeHeader = 4,
GenerateHeader = 2
}
}
namespace Std
{
}

25
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs

@ -495,31 +495,6 @@ namespace Std @@ -495,31 +495,6 @@ namespace Std
public unsafe partial class BasicString<_CharT, _Traits, _Allocator> : IDisposable
{
internal enum ShortMask
{
ShortMask = 0
}
internal enum LongMask
{
LongMask = 0
}
internal enum MinCap
{
MinCap = 0
}
internal enum NWords
{
NWords = 0
}
internal enum Alignment
{
Alignment = 0
}
public global::System.IntPtr __Instance { get; protected set; }
protected int __PointerAdjustment;

5
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs

@ -483,11 +483,6 @@ namespace Std @@ -483,11 +483,6 @@ namespace Std
public unsafe partial class BasicString<_CharT, _Traits, _Alloc> : IDisposable
{
internal enum S_localCapacity
{
S_localCapacity = 0
}
public global::System.IntPtr __Instance { get; protected set; }
protected int __PointerAdjustment;

24
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs

@ -641,15 +641,6 @@ namespace Std @@ -641,15 +641,6 @@ namespace Std
public unsafe partial class StringVal<_Val_types>
{
public enum BUF_SIZE
{
BUF_SIZE = 0
}
public enum ALLOC_MASK
{
ALLOC_MASK = 0
}
}
}
@ -711,11 +702,6 @@ namespace Std @@ -711,11 +702,6 @@ namespace Std
public unsafe partial class TreeVal<_Val_types>
{
public enum Redbl
{
Red = 0,
Black = 0
}
}
}
@ -736,16 +722,6 @@ namespace Std @@ -736,16 +722,6 @@ namespace Std
}
}
namespace Std
{
[Flags]
public enum CodecvtMode
{
ConsumeHeader = 4,
GenerateHeader = 2
}
}
namespace Std
{
}

2
src/Generator/Generators/CSharp/CSharpSources.cs

@ -3007,7 +3007,7 @@ namespace CppSharp.Generators.CSharp @@ -3007,7 +3007,7 @@ namespace CppSharp.Generators.CSharp
public override bool VisitEnumDecl(Enumeration @enum)
{
if (@enum.IsIncomplete)
if (@enum.IsIncomplete || @enum.Ignore)
return true;
PushBlock(BlockKind.Enum);

2
src/Generator/Passes/CleanCommentsPass.cs

@ -71,7 +71,7 @@ namespace CppSharp.Passes @@ -71,7 +71,7 @@ namespace CppSharp.Passes
var textComment = (TextComment) item;
if (textComment.Text.StartsWith("<", StringComparison.Ordinal))
textComment.Text = $"{textComment.Text}{">"}";
textComment.Text = $"{textComment.Text}>";
else if (textComment.Text.StartsWith(">", StringComparison.Ordinal))
textComment.Text = textComment.Text.Substring(1);
}

12
src/Generator/Passes/IgnoreSystemDeclarationsPass.cs

@ -16,7 +16,6 @@ namespace CppSharp.Passes @@ -16,7 +16,6 @@ namespace CppSharp.Passes
VisitOptions.VisitClassProperties = false;
VisitOptions.VisitFunctionParameters = false;
VisitOptions.VisitFunctionReturnType = false;
VisitOptions.VisitNamespaceEnums = false;
VisitOptions.VisitNamespaceEvents = false;
VisitOptions.VisitNamespaceTemplates = false;
VisitOptions.VisitNamespaceTypedefs = false;
@ -114,6 +113,17 @@ namespace CppSharp.Passes @@ -114,6 +113,17 @@ namespace CppSharp.Passes
s.Arguments[0].Type.Type.Desugar().IsPrimitiveType(PrimitiveType.Char));
}
public override bool VisitEnumDecl(Enumeration @enum)
{
if (!base.VisitEnumDecl(@enum))
return false;
if (@enum.TranslationUnit.IsSystemHeader)
@enum.ExplicitlyIgnore();
return true;
}
public override bool VisitFunctionDecl(Function function)
{
if (!base.VisitFunctionDecl(function))

21
src/Generator/Passes/MarkUsedClassInternalsPass.cs

@ -28,23 +28,28 @@ namespace CppSharp.Passes @@ -28,23 +28,28 @@ namespace CppSharp.Passes
if (!base.VisitClassDecl(@class) || @class.Ignore || @class.IsDependent)
return false;
MarkUsedFieldTypes(@class, new HashSet<Class>());
MarkUsedFieldTypes(@class, new HashSet<DeclarationContext>());
return true;
}
private static void MarkUsedFieldTypes(Class @class, HashSet<Class> visitedClasses)
private static void MarkUsedFieldTypes(DeclarationContext declContext,
HashSet<DeclarationContext> visitedDeclarationContexts)
{
if (visitedClasses.Contains(@class))
if (visitedDeclarationContexts.Contains(declContext))
return;
visitedClasses.Add(@class);
visitedDeclarationContexts.Add(declContext);
DeclarationContext decl = null;
var @class = declContext as Class;
if (@class == null)
return;
Class type = null;
foreach (var field in @class.Layout.Fields.Where(
f => f.QualifiedType.Type.TryGetClass(out type)))
f => f.QualifiedType.Type.TryGetDeclaration(out decl)))
{
DeclarationContext declarationContext = type;
DeclarationContext declarationContext = decl;
do
{
if (declarationContext.Ignore)
@ -58,7 +63,7 @@ namespace CppSharp.Passes @@ -58,7 +63,7 @@ namespace CppSharp.Passes
declarationContext = declarationContext.Namespace;
} while (declarationContext != null);
MarkUsedFieldTypes(type, visitedClasses);
MarkUsedFieldTypes(decl, visitedDeclarationContexts);
}
}
}

23
tests/CSharp/CSharp.cs

@ -40,19 +40,18 @@ namespace CppSharp.Tests @@ -40,19 +40,18 @@ namespace CppSharp.Tests
ctx.SetClassAsValueType("StructTestArrayTypeFromTypedef");
ctx.IgnoreClassWithName("IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor");
var macroRegex = new Regex(@"(MY_MACRO_TEST_.*)");
List<string> list = new List<string>();
foreach (TranslationUnit unit in ctx.TranslationUnits)
{
if (unit.FilePath == "<invalid>" || unit.FileName == "CSharp.h")
foreach (var macro in unit.PreprocessedEntities.OfType<MacroDefinition>())
{
Match match = macroRegex.Match(macro.Name);
if (match.Success) list.Add(macro.Name);
}
}
var macroRegex = new Regex("(MY_MACRO_TEST_.*)");
var list = (from unit in ctx.TranslationUnits
where !unit.IsValid || unit.FileName == "CSharp.h"
from macro in unit.PreprocessedEntities.OfType<MacroDefinition>()
where macroRegex.IsMatch(macro.Name)
select macro.Name).ToList();
var enumTest = ctx.GenerateEnumFromMacros("MyMacroTestEnum", list.ToArray());
enumTest.Namespace = new Namespace() {Name = "MacroTest"};
enumTest.Namespace = new Namespace()
{
Name = "MacroTest",
Namespace = ctx.TranslationUnits.First(u => u.IsValid && !u.IsSystemHeader)
};
}
public override void Postprocess(Driver driver, ASTContext ctx)

Loading…
Cancel
Save