Browse Source

Merge pull request #331 from ddobrev/master

Enabled the addition of undefines in the options
pull/332/head
João Matos 11 years ago
parent
commit
2341df6b07
  1. 25
      src/CppParser/Bindings/CLI/CppParser.cpp
  2. 11
      src/CppParser/Bindings/CLI/CppParser.h
  3. 70
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppParser.cs
  4. 70
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppParser.cs
  5. 70
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs
  6. 1
      src/CppParser/CppParser.cpp
  7. 1
      src/CppParser/CppParser.h
  8. 6
      src/CppParser/Parser.cpp
  9. 6
      src/Generator/Driver.cs

25
src/CppParser/Bindings/CLI/CppParser.cpp

@ -97,6 +97,25 @@ void CppSharp::Parser::ParserOptions::clearDefines() @@ -97,6 +97,25 @@ void CppSharp::Parser::ParserOptions::clearDefines()
((::CppSharp::CppParser::ParserOptions*)NativePtr)->clearDefines();
}
System::String^ CppSharp::Parser::ParserOptions::getUndefines(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getUndefines(i);
if (__ret == nullptr) return nullptr;
return clix::marshalString<clix::E_UTF8>(__ret);
}
void CppSharp::Parser::ParserOptions::addUndefines(System::String^ s)
{
auto _arg0 = clix::marshalString<clix::E_UTF8>(s);
auto arg0 = _arg0.c_str();
((::CppSharp::CppParser::ParserOptions*)NativePtr)->addUndefines(arg0);
}
void CppSharp::Parser::ParserOptions::clearUndefines()
{
((::CppSharp::CppParser::ParserOptions*)NativePtr)->clearUndefines();
}
System::String^ CppSharp::Parser::ParserOptions::getLibraryDirs(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirs(i);
@ -164,6 +183,12 @@ unsigned int CppSharp::Parser::ParserOptions::DefinesCount::get() @@ -164,6 +183,12 @@ unsigned int CppSharp::Parser::ParserOptions::DefinesCount::get()
return __ret;
}
unsigned int CppSharp::Parser::ParserOptions::UndefinesCount::get()
{
auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getUndefinesCount();
return __ret;
}
unsigned int CppSharp::Parser::ParserOptions::LibraryDirsCount::get()
{
auto __ret = ((::CppSharp::CppParser::ParserOptions*)NativePtr)->getLibraryDirsCount();

11
src/CppParser/Bindings/CLI/CppParser.h

@ -106,6 +106,11 @@ namespace CppSharp @@ -106,6 +106,11 @@ namespace CppSharp
unsigned int get();
}
property unsigned int UndefinesCount
{
unsigned int get();
}
property unsigned int LibraryDirsCount
{
unsigned int get();
@ -189,6 +194,12 @@ namespace CppSharp @@ -189,6 +194,12 @@ namespace CppSharp
void clearDefines();
System::String^ getUndefines(unsigned int i);
void addUndefines(System::String^ s);
void clearUndefines();
System::String^ getLibraryDirs(unsigned int i);
void addLibraryDirs(System::String^ s);

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

@ -47,31 +47,31 @@ namespace CppSharp @@ -47,31 +47,31 @@ namespace CppSharp
public unsafe partial class ParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 104)]
[StructLayout(LayoutKind.Explicit, Size = 116)]
public partial struct Internal
{
[FieldOffset(72)]
[FieldOffset(84)]
public global::System.IntPtr ASTContext;
[FieldOffset(76)]
[FieldOffset(88)]
public int ToolSetToUse;
[FieldOffset(92)]
[FieldOffset(104)]
public CppSharp.Parser.AST.CppAbi Abi;
[FieldOffset(96)]
[FieldOffset(108)]
public bool NoStandardIncludes;
[FieldOffset(97)]
[FieldOffset(109)]
public bool NoBuiltinIncludes;
[FieldOffset(98)]
[FieldOffset(110)]
public bool MicrosoftMode;
[FieldOffset(99)]
[FieldOffset(111)]
public bool Verbose;
[FieldOffset(100)]
[FieldOffset(112)]
public CppSharp.Parser.LanguageVersion LanguageVersion;
[SuppressUnmanagedCodeSecurity]
@ -149,6 +149,21 @@ namespace CppSharp @@ -149,6 +149,21 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12clearDefinesEv")]
internal static extern void clearDefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12getUndefinesEj")]
internal static extern global::System.IntPtr getUndefines_0(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12addUndefinesEPKc")]
internal static extern void addUndefines_0(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions14clearUndefinesEv")]
internal static extern void clearUndefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions14getLibraryDirsEj")]
@ -194,6 +209,11 @@ namespace CppSharp @@ -194,6 +209,11 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions15getDefinesCountEv")]
internal static extern uint getDefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions17getUndefinesCountEv")]
internal static extern uint getUndefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions19getLibraryDirsCountEv")]
@ -219,7 +239,7 @@ namespace CppSharp @@ -219,7 +239,7 @@ namespace CppSharp
private static global::System.IntPtr __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(104);
var ret = Marshal.AllocHGlobal(116);
CppSharp.Parser.ParserOptions.Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret;
}
@ -236,7 +256,7 @@ namespace CppSharp @@ -236,7 +256,7 @@ namespace CppSharp
public ParserOptions()
{
__Instance = Marshal.AllocHGlobal(104);
__Instance = Marshal.AllocHGlobal(116);
Internal.ctor_0(__Instance);
}
@ -328,6 +348,25 @@ namespace CppSharp @@ -328,6 +348,25 @@ namespace CppSharp
Internal.clearDefines_0(__Instance);
}
public string getUndefines(uint i)
{
var __ret = Internal.getUndefines_0(__Instance, i);
if (__ret == global::System.IntPtr.Zero) return null;
return Marshal.PtrToStringAnsi(__ret);
}
public void addUndefines(string s)
{
var arg0 = Marshal.StringToHGlobalAnsi(s);
Internal.addUndefines_0(__Instance, arg0);
Marshal.FreeHGlobal(arg0);
}
public void clearUndefines()
{
Internal.clearUndefines_0(__Instance);
}
public string getLibraryDirs(uint i)
{
var __ret = Internal.getLibraryDirs_0(__Instance, i);
@ -400,6 +439,15 @@ namespace CppSharp @@ -400,6 +439,15 @@ namespace CppSharp
}
}
public uint UndefinesCount
{
get
{
var __ret = Internal.getUndefinesCount_0(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get

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

@ -47,31 +47,31 @@ namespace CppSharp @@ -47,31 +47,31 @@ namespace CppSharp
public unsafe partial class ParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 128)]
[StructLayout(LayoutKind.Explicit, Size = 140)]
public partial struct Internal
{
[FieldOffset(84)]
[FieldOffset(96)]
public global::System.IntPtr ASTContext;
[FieldOffset(88)]
[FieldOffset(100)]
public int ToolSetToUse;
[FieldOffset(116)]
[FieldOffset(128)]
public CppSharp.Parser.AST.CppAbi Abi;
[FieldOffset(120)]
[FieldOffset(132)]
public bool NoStandardIncludes;
[FieldOffset(121)]
[FieldOffset(133)]
public bool NoBuiltinIncludes;
[FieldOffset(122)]
[FieldOffset(134)]
public bool MicrosoftMode;
[FieldOffset(123)]
[FieldOffset(135)]
public bool Verbose;
[FieldOffset(124)]
[FieldOffset(136)]
public CppSharp.Parser.LanguageVersion LanguageVersion;
[SuppressUnmanagedCodeSecurity]
@ -149,6 +149,21 @@ namespace CppSharp @@ -149,6 +149,21 @@ namespace CppSharp
EntryPoint="?clearDefines@ParserOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void clearDefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getUndefines@ParserOptions@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr getUndefines_0(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addUndefines@ParserOptions@CppParser@CppSharp@@QAEXPBD@Z")]
internal static extern void addUndefines_0(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearUndefines@ParserOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void clearUndefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirs@ParserOptions@CppParser@CppSharp@@QAEPBDI@Z")]
@ -194,6 +209,11 @@ namespace CppSharp @@ -194,6 +209,11 @@ namespace CppSharp
EntryPoint="?getDefinesCount@ParserOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint getDefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getUndefinesCount@ParserOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint getUndefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirsCount@ParserOptions@CppParser@CppSharp@@QAEIXZ")]
@ -219,7 +239,7 @@ namespace CppSharp @@ -219,7 +239,7 @@ namespace CppSharp
private static global::System.IntPtr __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(128);
var ret = Marshal.AllocHGlobal(140);
CppSharp.Parser.ParserOptions.Internal.cctor_2(ret, new global::System.IntPtr(&native));
return ret;
}
@ -236,7 +256,7 @@ namespace CppSharp @@ -236,7 +256,7 @@ namespace CppSharp
public ParserOptions()
{
__Instance = Marshal.AllocHGlobal(128);
__Instance = Marshal.AllocHGlobal(140);
Internal.ctor_0(__Instance);
}
@ -328,6 +348,25 @@ namespace CppSharp @@ -328,6 +348,25 @@ namespace CppSharp
Internal.clearDefines_0(__Instance);
}
public string getUndefines(uint i)
{
var __ret = Internal.getUndefines_0(__Instance, i);
if (__ret == global::System.IntPtr.Zero) return null;
return Marshal.PtrToStringAnsi(__ret);
}
public void addUndefines(string s)
{
var arg0 = Marshal.StringToHGlobalAnsi(s);
Internal.addUndefines_0(__Instance, arg0);
Marshal.FreeHGlobal(arg0);
}
public void clearUndefines()
{
Internal.clearUndefines_0(__Instance);
}
public string getLibraryDirs(uint i)
{
var __ret = Internal.getLibraryDirs_0(__Instance, i);
@ -400,6 +439,15 @@ namespace CppSharp @@ -400,6 +439,15 @@ namespace CppSharp
}
}
public uint UndefinesCount
{
get
{
var __ret = Internal.getUndefinesCount_0(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get

70
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppParser.cs

@ -47,31 +47,31 @@ namespace CppSharp @@ -47,31 +47,31 @@ namespace CppSharp
public unsafe partial class ParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 168)]
[StructLayout(LayoutKind.Explicit, Size = 192)]
public partial struct Internal
{
[FieldOffset(128)]
[FieldOffset(152)]
public global::System.IntPtr ASTContext;
[FieldOffset(136)]
[FieldOffset(160)]
public int ToolSetToUse;
[FieldOffset(152)]
[FieldOffset(176)]
public CppSharp.Parser.AST.CppAbi Abi;
[FieldOffset(156)]
[FieldOffset(180)]
public bool NoStandardIncludes;
[FieldOffset(157)]
[FieldOffset(181)]
public bool NoBuiltinIncludes;
[FieldOffset(158)]
[FieldOffset(182)]
public bool MicrosoftMode;
[FieldOffset(159)]
[FieldOffset(183)]
public bool Verbose;
[FieldOffset(160)]
[FieldOffset(184)]
public CppSharp.Parser.LanguageVersion LanguageVersion;
[SuppressUnmanagedCodeSecurity]
@ -149,6 +149,21 @@ namespace CppSharp @@ -149,6 +149,21 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12clearDefinesEv")]
internal static extern void clearDefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12getUndefinesEj")]
internal static extern global::System.IntPtr getUndefines_0(global::System.IntPtr instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions12addUndefinesEPKc")]
internal static extern void addUndefines_0(global::System.IntPtr instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions14clearUndefinesEv")]
internal static extern void clearUndefines_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions14getLibraryDirsEj")]
@ -194,6 +209,11 @@ namespace CppSharp @@ -194,6 +209,11 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions15getDefinesCountEv")]
internal static extern uint getDefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions17getUndefinesCountEv")]
internal static extern uint getUndefinesCount_0(global::System.IntPtr instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13ParserOptions19getLibraryDirsCountEv")]
@ -219,7 +239,7 @@ namespace CppSharp @@ -219,7 +239,7 @@ namespace CppSharp
private static global::System.IntPtr __CopyValue(ParserOptions.Internal native)
{
var ret = Marshal.AllocHGlobal(168);
var ret = Marshal.AllocHGlobal(192);
CppSharp.Parser.ParserOptions.Internal.cctor_1(ret, new global::System.IntPtr(&native));
return ret;
}
@ -236,7 +256,7 @@ namespace CppSharp @@ -236,7 +256,7 @@ namespace CppSharp
public ParserOptions()
{
__Instance = Marshal.AllocHGlobal(168);
__Instance = Marshal.AllocHGlobal(192);
Internal.ctor_0(__Instance);
}
@ -328,6 +348,25 @@ namespace CppSharp @@ -328,6 +348,25 @@ namespace CppSharp
Internal.clearDefines_0(__Instance);
}
public string getUndefines(uint i)
{
var __ret = Internal.getUndefines_0(__Instance, i);
if (__ret == global::System.IntPtr.Zero) return null;
return Marshal.PtrToStringAnsi(__ret);
}
public void addUndefines(string s)
{
var arg0 = Marshal.StringToHGlobalAnsi(s);
Internal.addUndefines_0(__Instance, arg0);
Marshal.FreeHGlobal(arg0);
}
public void clearUndefines()
{
Internal.clearUndefines_0(__Instance);
}
public string getLibraryDirs(uint i)
{
var __ret = Internal.getLibraryDirs_0(__Instance, i);
@ -400,6 +439,15 @@ namespace CppSharp @@ -400,6 +439,15 @@ namespace CppSharp
}
}
public uint UndefinesCount
{
get
{
var __ret = Internal.getUndefinesCount_0(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get

1
src/CppParser/CppParser.cpp

@ -27,6 +27,7 @@ DEF_STRING(ParserOptions, FileName) @@ -27,6 +27,7 @@ DEF_STRING(ParserOptions, FileName)
DEF_VECTOR_STRING(ParserOptions, IncludeDirs)
DEF_VECTOR_STRING(ParserOptions, SystemIncludeDirs)
DEF_VECTOR_STRING(ParserOptions, Defines)
DEF_VECTOR_STRING(ParserOptions, Undefines)
DEF_VECTOR_STRING(ParserOptions, LibraryDirs)
DEF_STRING(ParserOptions, TargetTriple)
DEF_STRING(ParserTargetInfo, ABI)

1
src/CppParser/CppParser.h

@ -44,6 +44,7 @@ struct CS_API ParserOptions @@ -44,6 +44,7 @@ struct CS_API ParserOptions
VECTOR_STRING(IncludeDirs)
VECTOR_STRING(SystemIncludeDirs)
VECTOR_STRING(Defines)
VECTOR_STRING(Undefines)
VECTOR_STRING(LibraryDirs)
CppSharp::CppParser::AST::ASTContext* ASTContext;

6
src/CppParser/Parser.cpp

@ -206,6 +206,12 @@ void Parser::SetupHeader() @@ -206,6 +206,12 @@ void Parser::SetupHeader()
PPOpts.addMacroDef(define);
}
for (unsigned I = 0, E = Opts->Undefines.size(); I != E; ++I)
{
const String& undefine = Opts->Undefines[I];
PPOpts.addMacroUndef(undefine);
}
// Initialize the default platform headers.
HSOpts.ResourceDir = GetClangResourceDir(".");
HSOpts.AddPath(GetClangBuiltinIncludeDir(), clang::frontend::System,

6
src/Generator/Driver.cs

@ -157,6 +157,12 @@ namespace CppSharp @@ -157,6 +157,12 @@ namespace CppSharp
options.addDefines(define);
}
for (uint i = 0; i < Options.UndefinesCount; ++i)
{
var define = Options.getUndefines(i);
options.addUndefines(define);
}
for (uint i = 0; i < Options.LibraryDirsCount; ++i)
{
var lib = Options.getLibraryDirs(i);

Loading…
Cancel
Save