Browse Source

Move libraries to a new class for linking options

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
pull/1391/head
Dimitar Dobrev 6 years ago
parent
commit
07763331e2
  1. 3
      src/CLI/Generator.cs
  2. 8
      src/CppParser/AST.cpp
  3. 296
      src/CppParser/Bindings/CLI/CppParser.cpp
  4. 113
      src/CppParser/Bindings/CLI/CppParser.h
  5. 427
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs
  6. 20
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs
  7. 427
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs
  8. 14
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs
  9. 427
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs
  10. 20
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs
  11. 427
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs
  12. 14
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs
  13. 427
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs
  14. 14
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs
  15. 427
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs
  16. 14
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs
  17. 24
      src/CppParser/CppParser.cpp
  18. 17
      src/CppParser/CppParser.h
  19. 100
      src/CppParser/Parser.cpp
  20. 10
      src/CppParser/Parser.h
  21. 15
      src/Generator.Tests/ReadNativeDependenciesTest.cs
  22. 9
      src/Generator.Tests/ReadNativeSymbolsTest.cs
  23. 21
      src/Generator/Driver.cs
  24. 3
      src/Generator/Generators/CSharp/CSharpSources.cs
  25. 17
      src/Generator/Passes/GenerateSymbolsPass.cs
  26. 7
      src/Parser/Parser.cs
  27. 3
      src/Parser/ParserOptions.cs

3
src/CLI/Generator.cs

@ -163,9 +163,6 @@ namespace CppSharp @@ -163,9 +163,6 @@ namespace CppSharp
foreach (string s in options.IncludeDirs)
parserOptions.AddIncludeDirs(s);
foreach (string s in options.LibraryDirs)
parserOptions.AddLibraryDirs(s);
foreach (KeyValuePair<string, string> d in options.Defines)
{
if(string.IsNullOrEmpty(d.Value))

8
src/CppParser/AST.cpp

@ -894,13 +894,9 @@ TranslationUnit::~TranslationUnit() {} @@ -894,13 +894,9 @@ TranslationUnit::~TranslationUnit() {}
DEF_VECTOR(TranslationUnit, MacroDefinition*, Macros)
NativeLibrary::NativeLibrary()
: archType(AST::ArchType::UnknownArch)
{
}
: archType(AST::ArchType::UnknownArch) {}
NativeLibrary::~NativeLibrary()
{
}
NativeLibrary::~NativeLibrary() {}
// NativeLibrary
DEF_VECTOR_STRING(NativeLibrary, Symbols)

296
src/CppParser/Bindings/CLI/CppParser.cpp

@ -159,25 +159,6 @@ void CppSharp::Parser::CppParserOptions::ClearUndefines() @@ -159,25 +159,6 @@ void CppSharp::Parser::CppParserOptions::ClearUndefines()
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->clearUndefines();
}
System::String^ CppSharp::Parser::CppParserOptions::GetLibraryDirs(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getLibraryDirs(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::CppParserOptions::AddLibraryDirs(System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->addLibraryDirs(__arg0);
}
void CppSharp::Parser::CppParserOptions::ClearLibraryDirs()
{
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->clearLibraryDirs();
}
System::String^ CppSharp::Parser::CppParserOptions::GetSupportedStdTypes(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getSupportedStdTypes(i);
@ -238,16 +219,6 @@ void CppSharp::Parser::CppParserOptions::Arguments::set(System::Collections::Gen @@ -238,16 +219,6 @@ void CppSharp::Parser::CppParserOptions::Arguments::set(System::Collections::Gen
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->Arguments = _tmpvalue;
}
System::String^ CppSharp::Parser::CppParserOptions::LibraryFile::get()
{
return clix::marshalString<clix::E_UTF8>(((::CppSharp::CppParser::CppParserOptions*)NativePtr)->libraryFile);
}
void CppSharp::Parser::CppParserOptions::LibraryFile::set(System::String^ value)
{
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->libraryFile = clix::marshalString<clix::E_UTF8>(value);
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::CppParserOptions::SourceFiles::get()
{
auto _tmp__SourceFiles = gcnew System::Collections::Generic::List<System::String^>();
@ -358,28 +329,6 @@ void CppSharp::Parser::CppParserOptions::Undefines::set(System::Collections::Gen @@ -358,28 +329,6 @@ void CppSharp::Parser::CppParserOptions::Undefines::set(System::Collections::Gen
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->Undefines = _tmpvalue;
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::CppParserOptions::LibraryDirs::get()
{
auto _tmp__LibraryDirs = gcnew System::Collections::Generic::List<System::String^>();
for(auto _element : ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->LibraryDirs)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmp__LibraryDirs->Add(_marshalElement);
}
return _tmp__LibraryDirs;
}
void CppSharp::Parser::CppParserOptions::LibraryDirs::set(System::Collections::Generic::List<System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(System::String^ _element in value)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::CppParserOptions*)NativePtr)->LibraryDirs = _tmpvalue;
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::CppParserOptions::SupportedStdTypes::get()
{
auto _tmp__SupportedStdTypes = gcnew System::Collections::Generic::List<System::String^>();
@ -554,15 +503,202 @@ unsigned int CppSharp::Parser::CppParserOptions::UndefinesCount::get() @@ -554,15 +503,202 @@ unsigned int CppSharp::Parser::CppParserOptions::UndefinesCount::get()
return __ret;
}
unsigned int CppSharp::Parser::CppParserOptions::LibraryDirsCount::get()
unsigned int CppSharp::Parser::CppParserOptions::SupportedStdTypesCount::get()
{
auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getLibraryDirsCount();
auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getSupportedStdTypesCount();
return __ret;
}
unsigned int CppSharp::Parser::CppParserOptions::SupportedStdTypesCount::get()
CppSharp::Parser::LinkerOptions::LinkerOptions(::CppSharp::CppParser::LinkerOptions* native)
: __ownsNativeInstance(false)
{
auto __ret = ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->getSupportedStdTypesCount();
NativePtr = native;
}
CppSharp::Parser::LinkerOptions^ CppSharp::Parser::LinkerOptions::__CreateInstance(::System::IntPtr native)
{
return gcnew ::CppSharp::Parser::LinkerOptions((::CppSharp::CppParser::LinkerOptions*) native.ToPointer());
}
CppSharp::Parser::LinkerOptions::LinkerOptions(::CppSharp::CppParser::LinkerOptions* native, const bool ownNativeInstance)
: __ownsNativeInstance(ownNativeInstance)
{
NativePtr = native;
}
CppSharp::Parser::LinkerOptions^ CppSharp::Parser::LinkerOptions::__CreateInstance(::System::IntPtr native, bool __ownsNativeInstance)
{
return gcnew ::CppSharp::Parser::LinkerOptions((::CppSharp::CppParser::LinkerOptions*) native.ToPointer(), __ownsNativeInstance);
}
CppSharp::Parser::LinkerOptions::~LinkerOptions()
{
delete NativePtr;
}
CppSharp::Parser::LinkerOptions::LinkerOptions()
{
__ownsNativeInstance = true;
NativePtr = new ::CppSharp::CppParser::LinkerOptions();
}
System::String^ CppSharp::Parser::LinkerOptions::GetArguments(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getArguments(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddArguments(System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->addArguments(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearArguments()
{
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearArguments();
}
System::String^ CppSharp::Parser::LinkerOptions::GetLibraryDirs(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraryDirs(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddLibraryDirs(System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->addLibraryDirs(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearLibraryDirs()
{
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearLibraryDirs();
}
System::String^ CppSharp::Parser::LinkerOptions::GetLibraries(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraries(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddLibraries(System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->addLibraries(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearLibraries()
{
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearLibraries();
}
CppSharp::Parser::LinkerOptions::LinkerOptions(CppSharp::Parser::LinkerOptions^ _0)
{
__ownsNativeInstance = true;
if (ReferenceEquals(_0, nullptr))
throw gcnew ::System::ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
auto &__arg0 = *(::CppSharp::CppParser::LinkerOptions*)_0->NativePtr;
NativePtr = new ::CppSharp::CppParser::LinkerOptions(__arg0);
}
System::IntPtr CppSharp::Parser::LinkerOptions::__Instance::get()
{
return System::IntPtr(NativePtr);
}
void CppSharp::Parser::LinkerOptions::__Instance::set(System::IntPtr object)
{
NativePtr = (::CppSharp::CppParser::LinkerOptions*)object.ToPointer();
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::LinkerOptions::Arguments::get()
{
auto _tmp__Arguments = gcnew System::Collections::Generic::List<System::String^>();
for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Arguments)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmp__Arguments->Add(_marshalElement);
}
return _tmp__Arguments;
}
void CppSharp::Parser::LinkerOptions::Arguments::set(System::Collections::Generic::List<System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(System::String^ _element in value)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Arguments = _tmpvalue;
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::LinkerOptions::LibraryDirs::get()
{
auto _tmp__LibraryDirs = gcnew System::Collections::Generic::List<System::String^>();
for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->LibraryDirs)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmp__LibraryDirs->Add(_marshalElement);
}
return _tmp__LibraryDirs;
}
void CppSharp::Parser::LinkerOptions::LibraryDirs::set(System::Collections::Generic::List<System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(System::String^ _element in value)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->LibraryDirs = _tmpvalue;
}
System::Collections::Generic::List<System::String^>^ CppSharp::Parser::LinkerOptions::Libraries::get()
{
auto _tmp__Libraries = gcnew System::Collections::Generic::List<System::String^>();
for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Libraries)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmp__Libraries->Add(_marshalElement);
}
return _tmp__Libraries;
}
void CppSharp::Parser::LinkerOptions::Libraries::set(System::Collections::Generic::List<System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(System::String^ _element in value)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Libraries = _tmpvalue;
}
unsigned int CppSharp::Parser::LinkerOptions::ArgumentsCount::get()
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getArgumentsCount();
return __ret;
}
unsigned int CppSharp::Parser::LinkerOptions::LibraryDirsCount::get()
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraryDirsCount();
return __ret;
}
unsigned int CppSharp::Parser::LinkerOptions::LibrariesCount::get()
{
auto __ret = ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibrariesCount();
return __ret;
}
@ -730,6 +866,26 @@ void CppSharp::Parser::ParserResult::ClearDiagnostics() @@ -730,6 +866,26 @@ void CppSharp::Parser::ParserResult::ClearDiagnostics()
((::CppSharp::CppParser::ParserResult*)NativePtr)->clearDiagnostics();
}
CppSharp::Parser::AST::NativeLibrary^ CppSharp::Parser::ParserResult::GetLibraries(unsigned int i)
{
auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getLibraries(i);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::NativeLibrary((::CppSharp::CppParser::AST::NativeLibrary*)__ret);
}
void CppSharp::Parser::ParserResult::AddLibraries(CppSharp::Parser::AST::NativeLibrary^ s)
{
if (ReferenceEquals(s, nullptr))
throw gcnew ::System::ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
auto __arg0 = (::CppSharp::CppParser::AST::NativeLibrary*)s->NativePtr;
((::CppSharp::CppParser::ParserResult*)NativePtr)->addLibraries(__arg0);
}
void CppSharp::Parser::ParserResult::ClearLibraries()
{
((::CppSharp::CppParser::ParserResult*)NativePtr)->clearLibraries();
}
System::IntPtr CppSharp::Parser::ParserResult::__Instance::get()
{
return System::IntPtr(NativePtr);
@ -775,14 +931,26 @@ void CppSharp::Parser::ParserResult::Diagnostics::set(System::Collections::Gener @@ -775,14 +931,26 @@ void CppSharp::Parser::ParserResult::Diagnostics::set(System::Collections::Gener
((::CppSharp::CppParser::ParserResult*)NativePtr)->Diagnostics = _tmpvalue;
}
CppSharp::Parser::AST::NativeLibrary^ CppSharp::Parser::ParserResult::Library::get()
System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>^ CppSharp::Parser::ParserResult::Libraries::get()
{
return (((::CppSharp::CppParser::ParserResult*)NativePtr)->library == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::NativeLibrary((::CppSharp::CppParser::AST::NativeLibrary*)((::CppSharp::CppParser::ParserResult*)NativePtr)->library);
auto _tmp__Libraries = gcnew System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>();
for(auto _element : ((::CppSharp::CppParser::ParserResult*)NativePtr)->Libraries)
{
auto _marshalElement = (_element == nullptr) ? nullptr : gcnew ::CppSharp::Parser::AST::NativeLibrary((::CppSharp::CppParser::AST::NativeLibrary*)_element);
_tmp__Libraries->Add(_marshalElement);
}
return _tmp__Libraries;
}
void CppSharp::Parser::ParserResult::Library::set(CppSharp::Parser::AST::NativeLibrary^ value)
void CppSharp::Parser::ParserResult::Libraries::set(System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>^ value)
{
((::CppSharp::CppParser::ParserResult*)NativePtr)->library = (::CppSharp::CppParser::AST::NativeLibrary*)value->NativePtr;
auto _tmpvalue = std::vector<::CppSharp::CppParser::AST::NativeLibrary*>();
for each(CppSharp::Parser::AST::NativeLibrary^ _element in value)
{
auto _marshalElement = (::CppSharp::CppParser::AST::NativeLibrary*)_element->NativePtr;
_tmpvalue.push_back(_marshalElement);
}
((::CppSharp::CppParser::ParserResult*)NativePtr)->Libraries = _tmpvalue;
}
CppSharp::Parser::ParserTargetInfo^ CppSharp::Parser::ParserResult::TargetInfo::get()
@ -801,6 +969,12 @@ unsigned int CppSharp::Parser::ParserResult::DiagnosticsCount::get() @@ -801,6 +969,12 @@ unsigned int CppSharp::Parser::ParserResult::DiagnosticsCount::get()
return __ret;
}
unsigned int CppSharp::Parser::ParserResult::LibrariesCount::get()
{
auto __ret = ((::CppSharp::CppParser::ParserResult*)NativePtr)->getLibrariesCount();
return __ret;
}
CppSharp::Parser::ClangParser::ClangParser(::CppSharp::CppParser::ClangParser* native)
: __ownsNativeInstance(false)
{
@ -836,9 +1010,9 @@ CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseHeader(CppSh @@ -836,9 +1010,9 @@ CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseHeader(CppSh
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::CppParserOptions^ Opts)
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::LinkerOptions^ Opts)
{
auto __arg0 = (::CppSharp::CppParser::CppParserOptions*)Opts->NativePtr;
auto __arg0 = (::CppSharp::CppParser::LinkerOptions*)Opts->NativePtr;
auto __ret = ::CppSharp::CppParser::ClangParser::ParseLibrary(__arg0);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((::CppSharp::CppParser::ParserResult*)__ret);

113
src/CppParser/Bindings/CLI/CppParser.h

@ -18,6 +18,7 @@ namespace CppSharp @@ -18,6 +18,7 @@ namespace CppSharp
enum class SourceLocationKind;
ref class ClangParser;
ref class CppParserOptions;
ref class LinkerOptions;
ref class Parser;
ref class ParserDiagnostic;
ref class ParserResult;
@ -86,12 +87,6 @@ namespace CppSharp @@ -86,12 +87,6 @@ namespace CppSharp
void set(System::Collections::Generic::List<System::String^>^);
}
property System::String^ LibraryFile
{
System::String^ get();
void set(System::String^);
}
property System::Collections::Generic::List<System::String^>^ SourceFiles
{
System::Collections::Generic::List<System::String^>^ get();
@ -122,12 +117,6 @@ namespace CppSharp @@ -122,12 +117,6 @@ namespace CppSharp
void set(System::Collections::Generic::List<System::String^>^);
}
property System::Collections::Generic::List<System::String^>^ LibraryDirs
{
System::Collections::Generic::List<System::String^>^ get();
void set(System::Collections::Generic::List<System::String^>^);
}
property System::Collections::Generic::List<System::String^>^ SupportedStdTypes
{
System::Collections::Generic::List<System::String^>^ get();
@ -235,11 +224,6 @@ namespace CppSharp @@ -235,11 +224,6 @@ namespace CppSharp
unsigned int get();
}
property unsigned int LibraryDirsCount
{
unsigned int get();
}
property unsigned int SupportedStdTypesCount
{
unsigned int get();
@ -281,17 +265,87 @@ namespace CppSharp @@ -281,17 +265,87 @@ namespace CppSharp
void ClearUndefines();
System::String^ GetSupportedStdTypes(unsigned int i);
void AddSupportedStdTypes(System::String^ s);
void ClearSupportedStdTypes();
protected:
bool __ownsNativeInstance;
};
public ref class LinkerOptions : ICppInstance
{
public:
property ::CppSharp::CppParser::LinkerOptions* NativePtr;
property System::IntPtr __Instance
{
virtual System::IntPtr get();
virtual void set(System::IntPtr instance);
}
LinkerOptions(::CppSharp::CppParser::LinkerOptions* native);
LinkerOptions(::CppSharp::CppParser::LinkerOptions* native, bool ownNativeInstance);
static LinkerOptions^ __CreateInstance(::System::IntPtr native);
static LinkerOptions^ __CreateInstance(::System::IntPtr native, bool __ownsNativeInstance);
LinkerOptions();
LinkerOptions(CppSharp::Parser::LinkerOptions^ _0);
~LinkerOptions();
property System::Collections::Generic::List<System::String^>^ Arguments
{
System::Collections::Generic::List<System::String^>^ get();
void set(System::Collections::Generic::List<System::String^>^);
}
property System::Collections::Generic::List<System::String^>^ LibraryDirs
{
System::Collections::Generic::List<System::String^>^ get();
void set(System::Collections::Generic::List<System::String^>^);
}
property System::Collections::Generic::List<System::String^>^ Libraries
{
System::Collections::Generic::List<System::String^>^ get();
void set(System::Collections::Generic::List<System::String^>^);
}
property unsigned int ArgumentsCount
{
unsigned int get();
}
property unsigned int LibraryDirsCount
{
unsigned int get();
}
property unsigned int LibrariesCount
{
unsigned int get();
}
System::String^ GetArguments(unsigned int i);
void AddArguments(System::String^ s);
void ClearArguments();
System::String^ GetLibraryDirs(unsigned int i);
void AddLibraryDirs(System::String^ s);
void ClearLibraryDirs();
System::String^ GetSupportedStdTypes(unsigned int i);
System::String^ GetLibraries(unsigned int i);
void AddSupportedStdTypes(System::String^ s);
void AddLibraries(System::String^ s);
void ClearSupportedStdTypes();
void ClearLibraries();
protected:
bool __ownsNativeInstance;
@ -385,10 +439,10 @@ namespace CppSharp @@ -385,10 +439,10 @@ namespace CppSharp
void set(System::Collections::Generic::List<CppSharp::Parser::ParserDiagnostic^>^);
}
property CppSharp::Parser::AST::NativeLibrary^ Library
property System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>^ Libraries
{
CppSharp::Parser::AST::NativeLibrary^ get();
void set(CppSharp::Parser::AST::NativeLibrary^);
System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>^ get();
void set(System::Collections::Generic::List<CppSharp::Parser::AST::NativeLibrary^>^);
}
property CppSharp::Parser::ParserTargetInfo^ TargetInfo
@ -402,12 +456,23 @@ namespace CppSharp @@ -402,12 +456,23 @@ namespace CppSharp
unsigned int get();
}
property unsigned int LibrariesCount
{
unsigned int get();
}
CppSharp::Parser::ParserDiagnostic^ GetDiagnostics(unsigned int i);
void AddDiagnostics(CppSharp::Parser::ParserDiagnostic^ s);
void ClearDiagnostics();
CppSharp::Parser::AST::NativeLibrary^ GetLibraries(unsigned int i);
void AddLibraries(CppSharp::Parser::AST::NativeLibrary^ s);
void ClearLibraries();
protected:
bool __ownsNativeInstance;
};
@ -435,7 +500,7 @@ namespace CppSharp @@ -435,7 +500,7 @@ namespace CppSharp
static CppSharp::Parser::ParserResult^ ParseHeader(CppSharp::Parser::CppParserOptions^ Opts);
static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::CppParserOptions^ Opts);
static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::LinkerOptions^ Opts);
protected:
bool __ownsNativeInstance;

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

@ -46642,70 +46642,64 @@ namespace CppSharp @@ -46642,70 +46642,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 148)]
[StructLayout(LayoutKind.Explicit, Size = 124)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Arguments;
[FieldOffset(12)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C libraryFile;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SourceFiles;
[FieldOffset(36)]
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ IncludeDirs;
[FieldOffset(48)]
[FieldOffset(36)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(60)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Defines;
[FieldOffset(72)]
[FieldOffset(60)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Undefines;
[FieldOffset(84)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ LibraryDirs;
[FieldOffset(96)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(108)]
[FieldOffset(84)]
internal global::System.IntPtr ASTContext;
[FieldOffset(112)]
[FieldOffset(88)]
internal int toolSetToUse;
[FieldOffset(116)]
[FieldOffset(92)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C targetTriple;
[FieldOffset(128)]
[FieldOffset(104)]
internal byte noStandardIncludes;
[FieldOffset(129)]
[FieldOffset(105)]
internal byte noBuiltinIncludes;
[FieldOffset(130)]
[FieldOffset(106)]
internal byte microsoftMode;
[FieldOffset(131)]
[FieldOffset(107)]
internal byte verbose;
[FieldOffset(132)]
[FieldOffset(108)]
internal byte unityBuild;
[FieldOffset(133)]
[FieldOffset(109)]
internal byte skipPrivateDeclarations;
[FieldOffset(134)]
[FieldOffset(110)]
internal byte skipLayoutInfo;
[FieldOffset(135)]
[FieldOffset(111)]
internal byte skipFunctionBodies;
[FieldOffset(136)]
[FieldOffset(112)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46813,21 +46807,6 @@ namespace CppSharp @@ -46813,21 +46807,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14clearUndefinesEv")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions20getSupportedStdTypesEj")]
@ -46878,11 +46857,6 @@ namespace CppSharp @@ -46878,11 +46857,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getUndefinesCountEv")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions25getSupportedStdTypesCountEv")]
@ -47089,27 +47063,6 @@ namespace CppSharp @@ -47089,27 +47063,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47131,20 +47084,6 @@ namespace CppSharp @@ -47131,20 +47084,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47361,6 +47300,252 @@ namespace CppSharp @@ -47361,6 +47300,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 36)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Arguments;
[FieldOffset(12)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ LibraryDirs;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2Ev")]
internal static extern void ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_")]
internal static extern void cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsD2Ev")]
internal static extern void dtor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47370,11 +47555,11 @@ namespace CppSharp @@ -47370,11 +47555,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47560,7 +47745,7 @@ namespace CppSharp @@ -47560,7 +47745,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
[StructLayout(LayoutKind.Explicit, Size = 32)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47570,9 +47755,9 @@ namespace CppSharp @@ -47570,9 +47755,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S0_ Diagnostics;
[FieldOffset(16)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S0_ Libraries;
[FieldOffset(20)]
[FieldOffset(28)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47605,10 +47790,30 @@ namespace CppSharp @@ -47605,10 +47790,30 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser12ParserResult16clearDiagnosticsEv")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12addLibrariesERPNS0_3AST13NativeLibraryE")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult19getDiagnosticsCountEv")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47705,34 +47910,41 @@ namespace CppSharp @@ -47705,34 +47910,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47762,6 +47974,15 @@ namespace CppSharp @@ -47762,6 +47974,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47781,7 +48002,7 @@ namespace CppSharp @@ -47781,7 +48002,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppParserOptionsE")]
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47865,7 +48086,7 @@ namespace CppSharp @@ -47865,7 +48086,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -326,6 +326,13 @@ namespace Std @@ -326,6 +326,13 @@ namespace Std
[FieldOffset(0)]
internal global::System.IntPtr __value_;
}
[StructLayout(LayoutKind.Explicit, Size = 4)]
public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S1_
{
[FieldOffset(0)]
internal global::System.IntPtr __value_;
}
}
namespace Allocator
@ -921,6 +928,19 @@ namespace Std @@ -921,6 +928,19 @@ namespace Std
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(4)]
internal global::System.IntPtr __end_;
[FieldOffset(8)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S1_ __end_cap_;
}
}
}

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

@ -46642,70 +46642,64 @@ namespace CppSharp @@ -46642,70 +46642,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 184)]
[StructLayout(LayoutKind.Explicit, Size = 148)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(12)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C libraryFile;
[FieldOffset(36)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SourceFiles;
[FieldOffset(48)]
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ IncludeDirs;
[FieldOffset(60)]
[FieldOffset(36)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(72)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Defines;
[FieldOffset(84)]
[FieldOffset(60)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Undefines;
[FieldOffset(96)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(108)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(120)]
[FieldOffset(84)]
internal global::System.IntPtr ASTContext;
[FieldOffset(124)]
[FieldOffset(88)]
internal int toolSetToUse;
[FieldOffset(128)]
[FieldOffset(92)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple;
[FieldOffset(152)]
[FieldOffset(116)]
internal byte noStandardIncludes;
[FieldOffset(153)]
[FieldOffset(117)]
internal byte noBuiltinIncludes;
[FieldOffset(154)]
[FieldOffset(118)]
internal byte microsoftMode;
[FieldOffset(155)]
[FieldOffset(119)]
internal byte verbose;
[FieldOffset(156)]
[FieldOffset(120)]
internal byte unityBuild;
[FieldOffset(157)]
[FieldOffset(121)]
internal byte skipPrivateDeclarations;
[FieldOffset(158)]
[FieldOffset(122)]
internal byte skipLayoutInfo;
[FieldOffset(159)]
[FieldOffset(123)]
internal byte skipFunctionBodies;
[FieldOffset(160)]
[FieldOffset(124)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46813,21 +46807,6 @@ namespace CppSharp @@ -46813,21 +46807,6 @@ namespace CppSharp
EntryPoint="?clearUndefines@CppParserOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirs@CppParserOptions@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addLibraryDirs@CppParserOptions@CppParser@CppSharp@@QAEXPBD@Z")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearLibraryDirs@CppParserOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getSupportedStdTypes@CppParserOptions@CppParser@CppSharp@@QAEPBDI@Z")]
@ -46878,11 +46857,6 @@ namespace CppSharp @@ -46878,11 +46857,6 @@ namespace CppSharp
EntryPoint="?getUndefinesCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirsCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getSupportedStdTypesCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ")]
@ -47089,27 +47063,6 @@ namespace CppSharp @@ -47089,27 +47063,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47131,20 +47084,6 @@ namespace CppSharp @@ -47131,20 +47084,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47361,6 +47300,252 @@ namespace CppSharp @@ -47361,6 +47300,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 36)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(12)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0LinkerOptions@CppParser@CppSharp@@QAE@XZ")]
internal static extern global::System.IntPtr ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??0LinkerOptions@CppParser@CppSharp@@QAE@ABU012@@Z")]
internal static extern global::System.IntPtr cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="??1LinkerOptions@CppParser@CppSharp@@QAE@XZ")]
internal static extern void dtor(global::System.IntPtr __instance, int delete);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getArguments@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addArguments@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearArguments@LinkerOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraries@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addLibraries@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearLibraries@LinkerOptions@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getArgumentsCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraryDirsCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibrariesCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance, 0);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47370,11 +47555,11 @@ namespace CppSharp @@ -47370,11 +47555,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47560,7 +47745,7 @@ namespace CppSharp @@ -47560,7 +47745,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 24)]
[StructLayout(LayoutKind.Explicit, Size = 32)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47570,9 +47755,9 @@ namespace CppSharp @@ -47570,9 +47755,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_ Diagnostics;
[FieldOffset(16)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_ Libraries;
[FieldOffset(20)]
[FieldOffset(28)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47605,10 +47790,30 @@ namespace CppSharp @@ -47605,10 +47790,30 @@ namespace CppSharp
EntryPoint="?clearDiagnostics@ParserResult@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibraries@ParserResult@CppParser@CppSharp@@QAEPAVNativeLibrary@AST@23@I@Z")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?addLibraries@ParserResult@CppParser@CppSharp@@QAEXAAPAVNativeLibrary@AST@23@@Z")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?clearLibraries@ParserResult@CppParser@CppSharp@@QAEXXZ")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getDiagnosticsCount@ParserResult@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.ThisCall,
EntryPoint="?getLibrariesCount@ParserResult@CppParser@CppSharp@@QAEIXZ")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47705,34 +47910,41 @@ namespace CppSharp @@ -47705,34 +47910,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47762,6 +47974,15 @@ namespace CppSharp @@ -47762,6 +47974,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47781,7 +48002,7 @@ namespace CppSharp @@ -47781,7 +48002,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppParserOptions@23@@Z")]
EntryPoint="?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAULinkerOptions@23@@Z")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47865,7 +48086,7 @@ namespace CppSharp @@ -47865,7 +48086,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -289,6 +289,13 @@ namespace Std @@ -289,6 +289,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
}
namespace VectorVal
@ -605,6 +612,13 @@ namespace Std @@ -605,6 +612,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.VectorVal.__Internal _Myval2;
}
[StructLayout(LayoutKind.Explicit, Size = 12)]
public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1
{
[FieldOffset(0)]
internal global::Std.VectorVal.__Internal _Myval2;
}
}
namespace Allocator

427
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs

@ -46641,70 +46641,64 @@ namespace CppSharp @@ -46641,70 +46641,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 288)]
[StructLayout(LayoutKind.Explicit, Size = 240)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C libraryFile;
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SourceFiles;
[FieldOffset(72)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ IncludeDirs;
[FieldOffset(96)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(120)]
[FieldOffset(96)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Defines;
[FieldOffset(144)]
[FieldOffset(120)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Undefines;
[FieldOffset(168)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ LibraryDirs;
[FieldOffset(192)]
[FieldOffset(144)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(216)]
[FieldOffset(168)]
internal global::System.IntPtr ASTContext;
[FieldOffset(224)]
[FieldOffset(176)]
internal int toolSetToUse;
[FieldOffset(232)]
[FieldOffset(184)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C targetTriple;
[FieldOffset(256)]
[FieldOffset(208)]
internal byte noStandardIncludes;
[FieldOffset(257)]
[FieldOffset(209)]
internal byte noBuiltinIncludes;
[FieldOffset(258)]
[FieldOffset(210)]
internal byte microsoftMode;
[FieldOffset(259)]
[FieldOffset(211)]
internal byte verbose;
[FieldOffset(260)]
[FieldOffset(212)]
internal byte unityBuild;
[FieldOffset(261)]
[FieldOffset(213)]
internal byte skipPrivateDeclarations;
[FieldOffset(262)]
[FieldOffset(214)]
internal byte skipLayoutInfo;
[FieldOffset(263)]
[FieldOffset(215)]
internal byte skipFunctionBodies;
[FieldOffset(264)]
[FieldOffset(216)]
internal global::Std.BasicString.__Internalc__N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46812,21 +46806,6 @@ namespace CppSharp @@ -46812,21 +46806,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14clearUndefinesEv")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions20getSupportedStdTypesEj")]
@ -46877,11 +46856,6 @@ namespace CppSharp @@ -46877,11 +46856,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getUndefinesCountEv")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions25getSupportedStdTypesCountEv")]
@ -47088,27 +47062,6 @@ namespace CppSharp @@ -47088,27 +47062,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47130,20 +47083,6 @@ namespace CppSharp @@ -47130,20 +47083,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47360,6 +47299,252 @@ namespace CppSharp @@ -47360,6 +47299,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ LibraryDirs;
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_std_N___1_S_basic_string__C___N_std_N___1_S_char_traits__C___N_std_N___1_S_allocator__C___N_std_N___1_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2Ev")]
internal static extern void ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_")]
internal static extern void cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsD2Ev")]
internal static extern void dtor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47369,11 +47554,11 @@ namespace CppSharp @@ -47369,11 +47554,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47559,7 +47744,7 @@ namespace CppSharp @@ -47559,7 +47744,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 48)]
[StructLayout(LayoutKind.Explicit, Size = 64)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47569,9 +47754,9 @@ namespace CppSharp @@ -47569,9 +47754,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S0_ Diagnostics;
[FieldOffset(32)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S0_ Libraries;
[FieldOffset(40)]
[FieldOffset(56)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47604,10 +47789,30 @@ namespace CppSharp @@ -47604,10 +47789,30 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser12ParserResult16clearDiagnosticsEv")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12addLibrariesERPNS0_3AST13NativeLibraryE")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult19getDiagnosticsCountEv")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47704,34 +47909,41 @@ namespace CppSharp @@ -47704,34 +47909,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47761,6 +47973,15 @@ namespace CppSharp @@ -47761,6 +47973,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47780,7 +48001,7 @@ namespace CppSharp @@ -47780,7 +48001,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppParserOptionsE")]
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47864,7 +48085,7 @@ namespace CppSharp @@ -47864,7 +48085,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -326,6 +326,13 @@ namespace Std @@ -326,6 +326,13 @@ namespace Std
[FieldOffset(0)]
internal global::System.IntPtr __value_;
}
[StructLayout(LayoutKind.Explicit, Size = 8)]
public unsafe partial struct __Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S1_
{
[FieldOffset(0)]
internal global::System.IntPtr __value_;
}
}
namespace Allocator
@ -921,6 +928,19 @@ namespace Std @@ -921,6 +928,19 @@ namespace Std
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair_____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_N___1_S_allocator__S1_ __end_cap_;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_N___1_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S0_
{
[FieldOffset(0)]
internal global::System.IntPtr __begin_;
[FieldOffset(8)]
internal global::System.IntPtr __end_;
[FieldOffset(16)]
internal global::Std.CompressedPair.__Internalc__N_std_N___1_S___compressed_pair______N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_N___1_S_allocator__S1_ __end_cap_;
}
}
}

427
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs

@ -46641,70 +46641,64 @@ namespace CppSharp @@ -46641,70 +46641,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 312)]
[StructLayout(LayoutKind.Explicit, Size = 256)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C libraryFile;
[FieldOffset(56)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SourceFiles;
[FieldOffset(80)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ IncludeDirs;
[FieldOffset(104)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(128)]
[FieldOffset(96)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Defines;
[FieldOffset(152)]
[FieldOffset(120)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Undefines;
[FieldOffset(176)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(200)]
[FieldOffset(144)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(224)]
[FieldOffset(168)]
internal global::System.IntPtr ASTContext;
[FieldOffset(232)]
[FieldOffset(176)]
internal int toolSetToUse;
[FieldOffset(240)]
[FieldOffset(184)]
internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple;
[FieldOffset(272)]
[FieldOffset(216)]
internal byte noStandardIncludes;
[FieldOffset(273)]
[FieldOffset(217)]
internal byte noBuiltinIncludes;
[FieldOffset(274)]
[FieldOffset(218)]
internal byte microsoftMode;
[FieldOffset(275)]
[FieldOffset(219)]
internal byte verbose;
[FieldOffset(276)]
[FieldOffset(220)]
internal byte unityBuild;
[FieldOffset(277)]
[FieldOffset(221)]
internal byte skipPrivateDeclarations;
[FieldOffset(278)]
[FieldOffset(222)]
internal byte skipLayoutInfo;
[FieldOffset(279)]
[FieldOffset(223)]
internal byte skipFunctionBodies;
[FieldOffset(280)]
[FieldOffset(224)]
internal global::Std.BasicString.__Internalc__N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46812,21 +46806,6 @@ namespace CppSharp @@ -46812,21 +46806,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14clearUndefinesEv")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions20getSupportedStdTypesEj")]
@ -46877,11 +46856,6 @@ namespace CppSharp @@ -46877,11 +46856,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getUndefinesCountEv")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions25getSupportedStdTypesCountEv")]
@ -47088,27 +47062,6 @@ namespace CppSharp @@ -47088,27 +47062,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47130,20 +47083,6 @@ namespace CppSharp @@ -47130,20 +47083,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47360,6 +47299,252 @@ namespace CppSharp @@ -47360,6 +47299,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_N___cxx11_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2Ev")]
internal static extern void ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_")]
internal static extern void cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsD2Ev")]
internal static extern void dtor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47369,11 +47554,11 @@ namespace CppSharp @@ -47369,11 +47554,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47559,7 +47744,7 @@ namespace CppSharp @@ -47559,7 +47744,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 48)]
[StructLayout(LayoutKind.Explicit, Size = 64)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47569,9 +47754,9 @@ namespace CppSharp @@ -47569,9 +47754,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_ Diagnostics;
[FieldOffset(32)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_ Libraries;
[FieldOffset(40)]
[FieldOffset(56)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47604,10 +47789,30 @@ namespace CppSharp @@ -47604,10 +47789,30 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser12ParserResult16clearDiagnosticsEv")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12addLibrariesERPNS0_3AST13NativeLibraryE")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult19getDiagnosticsCountEv")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47704,34 +47909,41 @@ namespace CppSharp @@ -47704,34 +47909,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47761,6 +47973,15 @@ namespace CppSharp @@ -47761,6 +47973,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47780,7 +48001,7 @@ namespace CppSharp @@ -47780,7 +48001,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppParserOptionsE")]
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47864,7 +48085,7 @@ namespace CppSharp @@ -47864,7 +48085,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -389,6 +389,13 @@ namespace Std @@ -389,6 +389,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
}
namespace VectorBase
@ -666,6 +673,13 @@ namespace Std @@ -666,6 +673,13 @@ namespace Std
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S__Vector_base_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
namespace VectorImpl
{
[StructLayout(LayoutKind.Explicit, Size = 24)]

427
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs

@ -46641,70 +46641,64 @@ namespace CppSharp @@ -46641,70 +46641,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 240)]
[StructLayout(LayoutKind.Explicit, Size = 208)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C libraryFile;
[FieldOffset(32)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SourceFiles;
[FieldOffset(56)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ IncludeDirs;
[FieldOffset(80)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(104)]
[FieldOffset(96)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Defines;
[FieldOffset(128)]
[FieldOffset(120)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Undefines;
[FieldOffset(152)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(176)]
[FieldOffset(144)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(200)]
[FieldOffset(168)]
internal global::System.IntPtr ASTContext;
[FieldOffset(208)]
[FieldOffset(176)]
internal int toolSetToUse;
[FieldOffset(216)]
[FieldOffset(184)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple;
[FieldOffset(224)]
[FieldOffset(192)]
internal byte noStandardIncludes;
[FieldOffset(225)]
[FieldOffset(193)]
internal byte noBuiltinIncludes;
[FieldOffset(226)]
[FieldOffset(194)]
internal byte microsoftMode;
[FieldOffset(227)]
[FieldOffset(195)]
internal byte verbose;
[FieldOffset(228)]
[FieldOffset(196)]
internal byte unityBuild;
[FieldOffset(229)]
[FieldOffset(197)]
internal byte skipPrivateDeclarations;
[FieldOffset(230)]
[FieldOffset(198)]
internal byte skipLayoutInfo;
[FieldOffset(231)]
[FieldOffset(199)]
internal byte skipFunctionBodies;
[FieldOffset(232)]
[FieldOffset(200)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46812,21 +46806,6 @@ namespace CppSharp @@ -46812,21 +46806,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14clearUndefinesEv")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions20getSupportedStdTypesEj")]
@ -46877,11 +46856,6 @@ namespace CppSharp @@ -46877,11 +46856,6 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions17getUndefinesCountEv")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser16CppParserOptions25getSupportedStdTypesCountEv")]
@ -47088,27 +47062,6 @@ namespace CppSharp @@ -47088,27 +47062,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47130,20 +47083,6 @@ namespace CppSharp @@ -47130,20 +47083,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47360,6 +47299,252 @@ namespace CppSharp @@ -47360,6 +47299,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2Ev")]
internal static extern void ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_")]
internal static extern void cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptionsD2Ev")]
internal static extern void dtor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47369,11 +47554,11 @@ namespace CppSharp @@ -47369,11 +47554,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47559,7 +47744,7 @@ namespace CppSharp @@ -47559,7 +47744,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 48)]
[StructLayout(LayoutKind.Explicit, Size = 64)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47569,9 +47754,9 @@ namespace CppSharp @@ -47569,9 +47754,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_ Diagnostics;
[FieldOffset(32)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_ Libraries;
[FieldOffset(40)]
[FieldOffset(56)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47604,10 +47789,30 @@ namespace CppSharp @@ -47604,10 +47789,30 @@ namespace CppSharp
EntryPoint="_ZN8CppSharp9CppParser12ParserResult16clearDiagnosticsEv")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12getLibrariesEj")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult12addLibrariesERPNS0_3AST13NativeLibraryE")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult14clearLibrariesEv")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult19getDiagnosticsCountEv")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser12ParserResult17getLibrariesCountEv")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47704,34 +47909,41 @@ namespace CppSharp @@ -47704,34 +47909,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47761,6 +47973,15 @@ namespace CppSharp @@ -47761,6 +47973,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47780,7 +48001,7 @@ namespace CppSharp @@ -47780,7 +48001,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppParserOptionsE")]
EntryPoint="_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47864,7 +48085,7 @@ namespace CppSharp @@ -47864,7 +48085,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -389,6 +389,13 @@ namespace Std @@ -389,6 +389,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
}
namespace VectorBase
@ -666,6 +673,13 @@ namespace Std @@ -666,6 +673,13 @@ namespace Std
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S__Vector_base_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.VectorBase.VectorImpl.__Internal _M_impl;
}
namespace VectorImpl
{
[StructLayout(LayoutKind.Explicit, Size = 24)]

427
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs

@ -46642,70 +46642,64 @@ namespace CppSharp @@ -46642,70 +46642,64 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 312)]
[StructLayout(LayoutKind.Explicit, Size = 256)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C libraryFile;
[FieldOffset(56)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SourceFiles;
[FieldOffset(80)]
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ IncludeDirs;
[FieldOffset(104)]
[FieldOffset(72)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SystemIncludeDirs;
[FieldOffset(128)]
[FieldOffset(96)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Defines;
[FieldOffset(152)]
[FieldOffset(120)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Undefines;
[FieldOffset(176)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(200)]
[FieldOffset(144)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ SupportedStdTypes;
[FieldOffset(224)]
[FieldOffset(168)]
internal global::System.IntPtr ASTContext;
[FieldOffset(232)]
[FieldOffset(176)]
internal int toolSetToUse;
[FieldOffset(240)]
[FieldOffset(184)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C targetTriple;
[FieldOffset(272)]
[FieldOffset(216)]
internal byte noStandardIncludes;
[FieldOffset(273)]
[FieldOffset(217)]
internal byte noBuiltinIncludes;
[FieldOffset(274)]
[FieldOffset(218)]
internal byte microsoftMode;
[FieldOffset(275)]
[FieldOffset(219)]
internal byte verbose;
[FieldOffset(276)]
[FieldOffset(220)]
internal byte unityBuild;
[FieldOffset(277)]
[FieldOffset(221)]
internal byte skipPrivateDeclarations;
[FieldOffset(278)]
[FieldOffset(222)]
internal byte skipLayoutInfo;
[FieldOffset(279)]
[FieldOffset(223)]
internal byte skipFunctionBodies;
[FieldOffset(280)]
[FieldOffset(224)]
internal global::Std.BasicString.__Internalc__N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C clangVersion;
[SuppressUnmanagedCodeSecurity]
@ -46813,21 +46807,6 @@ namespace CppSharp @@ -46813,21 +46807,6 @@ namespace CppSharp
EntryPoint="?clearUndefines@CppParserOptions@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearUndefines(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraryDirs@CppParserOptions@CppParser@CppSharp@@QEAAPEBDI@Z")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addLibraryDirs@CppParserOptions@CppParser@CppSharp@@QEAAXPEBD@Z")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearLibraryDirs@CppParserOptions@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getSupportedStdTypes@CppParserOptions@CppParser@CppSharp@@QEAAPEBDI@Z")]
@ -46878,11 +46857,6 @@ namespace CppSharp @@ -46878,11 +46857,6 @@ namespace CppSharp
EntryPoint="?getUndefinesCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetUndefinesCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraryDirsCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getSupportedStdTypesCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ")]
@ -47089,27 +47063,6 @@ namespace CppSharp @@ -47089,27 +47063,6 @@ namespace CppSharp
__Internal.ClearUndefines(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetSupportedStdTypes(uint i)
{
var __ret = __Internal.GetSupportedStdTypes(__Instance, i);
@ -47131,20 +47084,6 @@ namespace CppSharp @@ -47131,20 +47084,6 @@ namespace CppSharp
__Internal.ClearSupportedStdTypes(__Instance);
}
public string LibraryFile
{
get
{
var __basicStringRet0 = global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>.__CreateInstance(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*) __Instance)->libraryFile));
return global::Std.BasicStringExtensions.Data(__basicStringRet0);
}
set
{
global::Std.BasicStringExtensions.__Internal.Assign(new global::System.IntPtr(&((global::CppSharp.Parser.CppParserOptions.__Internal*)__Instance)->libraryFile), value);
}
}
public global::CppSharp.Parser.AST.ASTContext ASTContext
{
get
@ -47361,6 +47300,252 @@ namespace CppSharp @@ -47361,6 +47300,252 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class LinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 72)]
public partial struct __Internal
{
[FieldOffset(0)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Arguments;
[FieldOffset(24)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ LibraryDirs;
[FieldOffset(48)]
internal global::Std.Vector.__Internalc__N_std_S_vector____N_std_S_basic_string__C___N_std_S_char_traits__C___N_std_S_allocator__C___N_std_S_allocator__S0_ Libraries;
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??0LinkerOptions@CppParser@CppSharp@@QEAA@XZ")]
internal static extern global::System.IntPtr ctor(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??0LinkerOptions@CppParser@CppSharp@@QEAA@AEBU012@@Z")]
internal static extern global::System.IntPtr cctor(global::System.IntPtr __instance, global::System.IntPtr _0);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="??1LinkerOptions@CppParser@CppSharp@@QEAA@XZ")]
internal static extern void dtor(global::System.IntPtr __instance, int delete);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getArguments@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z")]
internal static extern global::System.IntPtr GetArguments(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addArguments@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z")]
internal static extern void AddArguments(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearArguments@LinkerOptions@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearArguments(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z")]
internal static extern global::System.IntPtr GetLibraryDirs(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z")]
internal static extern void AddLibraryDirs(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearLibraryDirs(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraries@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addLibraries@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z")]
internal static extern void AddLibraries(global::System.IntPtr __instance, [MarshalAs(UnmanagedType.LPUTF8Str)] string s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearLibraries@LinkerOptions@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getArgumentsCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetArgumentsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraryDirsCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetLibraryDirsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibrariesCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
protected bool __ownsNativeInstance;
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::System.IntPtr native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native.ToPointer(), skipVTables);
}
internal static global::CppSharp.Parser.LinkerOptions __CreateInstance(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
{
return new global::CppSharp.Parser.LinkerOptions(native, skipVTables);
}
private static void* __CopyValue(global::CppSharp.Parser.LinkerOptions.__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new global::System.IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(global::CppSharp.Parser.LinkerOptions.__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new global::System.IntPtr(native);
}
public LinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
throw new global::System.ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
var __arg0 = _0.__Instance;
__Internal.cctor(__Instance, __arg0);
}
public void Dispose()
{
Dispose(disposing: true);
}
public virtual void Dispose(bool disposing)
{
if (__Instance == IntPtr.Zero)
return;
global::CppSharp.Parser.LinkerOptions __dummy;
NativeToManagedMap.TryRemove(__Instance, out __dummy);
if (disposing)
__Internal.dtor(__Instance, 0);
if (__ownsNativeInstance)
Marshal.FreeHGlobal(__Instance);
__Instance = IntPtr.Zero;
}
public string GetArguments(uint i)
{
var __ret = __Internal.GetArguments(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddArguments(string s)
{
__Internal.AddArguments(__Instance, s);
}
public void ClearArguments()
{
__Internal.ClearArguments(__Instance);
}
public string GetLibraryDirs(uint i)
{
var __ret = __Internal.GetLibraryDirs(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraryDirs(string s)
{
__Internal.AddLibraryDirs(__Instance, s);
}
public void ClearLibraryDirs()
{
__Internal.ClearLibraryDirs(__Instance);
}
public string GetLibraries(uint i)
{
var __ret = __Internal.GetLibraries(__Instance, i);
if (__ret == global::System.IntPtr.Zero)
return default(string);
var __retPtr = (byte*) __ret;
int __length = 0;
while (*(__retPtr++) != 0) __length += sizeof(byte);
return global::System.Text.Encoding.UTF8.GetString((byte*) __ret, __length);
}
public void AddLibraries(string s)
{
__Internal.AddLibraries(__Instance, s);
}
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public uint ArgumentsCount
{
get
{
var __ret = __Internal.GetArgumentsCount(__Instance);
return __ret;
}
}
public uint LibraryDirsCount
{
get
@ -47370,11 +47555,11 @@ namespace CppSharp @@ -47370,11 +47555,11 @@ namespace CppSharp
}
}
public uint SupportedStdTypesCount
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetSupportedStdTypesCount(__Instance);
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
@ -47560,7 +47745,7 @@ namespace CppSharp @@ -47560,7 +47745,7 @@ namespace CppSharp
public unsafe partial class ParserResult : IDisposable
{
[StructLayout(LayoutKind.Explicit, Size = 48)]
[StructLayout(LayoutKind.Explicit, Size = 64)]
public partial struct __Internal
{
[FieldOffset(0)]
@ -47570,9 +47755,9 @@ namespace CppSharp @@ -47570,9 +47755,9 @@ namespace CppSharp
internal global::Std.Vector.__Internalc__N_std_S_vector____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S_allocator__S0_ Diagnostics;
[FieldOffset(32)]
internal global::System.IntPtr library;
internal global::Std.Vector.__Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_ Libraries;
[FieldOffset(40)]
[FieldOffset(56)]
internal global::System.IntPtr targetInfo;
[SuppressUnmanagedCodeSecurity]
@ -47605,10 +47790,30 @@ namespace CppSharp @@ -47605,10 +47790,30 @@ namespace CppSharp
EntryPoint="?clearDiagnostics@ParserResult@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearDiagnostics(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibraries@ParserResult@CppParser@CppSharp@@QEAAPEAVNativeLibrary@AST@23@I@Z")]
internal static extern global::System.IntPtr GetLibraries(global::System.IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?addLibraries@ParserResult@CppParser@CppSharp@@QEAAXAEAPEAVNativeLibrary@AST@23@@Z")]
internal static extern void AddLibraries(global::System.IntPtr __instance, global::System.IntPtr s);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?clearLibraries@ParserResult@CppParser@CppSharp@@QEAAXXZ")]
internal static extern void ClearLibraries(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getDiagnosticsCount@ParserResult@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetDiagnosticsCount(global::System.IntPtr __instance);
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?getLibrariesCount@ParserResult@CppParser@CppSharp@@QEAAIXZ")]
internal static extern uint GetLibrariesCount(global::System.IntPtr __instance);
}
public global::System.IntPtr __Instance { get; protected set; }
@ -47705,34 +47910,41 @@ namespace CppSharp @@ -47705,34 +47910,41 @@ namespace CppSharp
__Internal.ClearDiagnostics(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
public global::CppSharp.Parser.AST.NativeLibrary GetLibraries(uint i)
{
get
{
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
var __ret = __Internal.GetLibraries(__Instance, i);
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (__ret == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(__ret))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[__ret];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(__ret);
return __result0;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
public void AddLibraries(global::CppSharp.Parser.AST.NativeLibrary s)
{
if (ReferenceEquals(s, null))
throw new global::System.ArgumentNullException("s", "Cannot be null because it is a C++ reference (&).");
var ____arg0 = s.__Instance;
var __arg0 = new global::System.IntPtr(&____arg0);
__Internal.AddLibraries(__Instance, __arg0);
}
public global::CppSharp.Parser.AST.NativeLibrary Library
public void ClearLibraries()
{
__Internal.ClearLibraries(__Instance);
}
public global::CppSharp.Parser.ParserResultKind Kind
{
get
{
global::CppSharp.Parser.AST.NativeLibrary __result0;
if (((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library == IntPtr.Zero) __result0 = null;
else if (global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap.ContainsKey(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library))
__result0 = (global::CppSharp.Parser.AST.NativeLibrary) global::CppSharp.Parser.AST.NativeLibrary.NativeToManagedMap[((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library];
else __result0 = global::CppSharp.Parser.AST.NativeLibrary.__CreateInstance(((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->library);
return __result0;
return ((global::CppSharp.Parser.ParserResult.__Internal*) __Instance)->kind;
}
set
{
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->library = ReferenceEquals(value, null) ? global::System.IntPtr.Zero : value.__Instance;
((global::CppSharp.Parser.ParserResult.__Internal*)__Instance)->kind = value;
}
}
@ -47762,6 +47974,15 @@ namespace CppSharp @@ -47762,6 +47974,15 @@ namespace CppSharp
return __ret;
}
}
public uint LibrariesCount
{
get
{
var __ret = __Internal.GetLibrariesCount(__Instance);
return __ret;
}
}
}
public unsafe partial class ClangParser : IDisposable
@ -47781,7 +48002,7 @@ namespace CppSharp @@ -47781,7 +48002,7 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity]
[DllImport("CppSharp.CppParser.dll", CallingConvention = global::System.Runtime.InteropServices.CallingConvention.Cdecl,
EntryPoint="?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppParserOptions@23@@Z")]
EntryPoint="?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAULinkerOptions@23@@Z")]
internal static extern global::System.IntPtr ParseLibrary(global::System.IntPtr Opts);
}
@ -47865,7 +48086,7 @@ namespace CppSharp @@ -47865,7 +48086,7 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppParserOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
{
var __arg0 = ReferenceEquals(Opts, null) ? global::System.IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);

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

@ -289,6 +289,13 @@ namespace Std @@ -289,6 +289,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator____N_CppSharp_N_CppParser_S_ParserDiagnostic___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S_vector_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S_allocator__S0_
{
[FieldOffset(0)]
internal global::Std.CompressedPair.__Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1 _Mypair;
}
}
namespace VectorVal
@ -605,6 +612,13 @@ namespace Std @@ -605,6 +612,13 @@ namespace Std
[FieldOffset(0)]
internal global::Std.VectorVal.__Internal _Myval2;
}
[StructLayout(LayoutKind.Explicit, Size = 24)]
public unsafe partial struct __Internalc__N_std_S__Compressed_pair____N_std_S_allocator_____N_CppSharp_N_CppParser_N_AST_S_NativeLibrary___N_std_S__Vector_val____N_std_S__Simple_types__S1__Vb1
{
[FieldOffset(0)]
internal global::Std.VectorVal.__Internal _Myval2;
}
}
namespace Allocator

24
src/CppParser/CppParser.cpp

@ -36,28 +36,38 @@ DEF_VECTOR_STRING(CppParserOptions, IncludeDirs) @@ -36,28 +36,38 @@ DEF_VECTOR_STRING(CppParserOptions, IncludeDirs)
DEF_VECTOR_STRING(CppParserOptions, SystemIncludeDirs)
DEF_VECTOR_STRING(CppParserOptions, Defines)
DEF_VECTOR_STRING(CppParserOptions, Undefines)
DEF_VECTOR_STRING(CppParserOptions, LibraryDirs)
DEF_VECTOR_STRING(CppParserOptions, SupportedStdTypes)
ParserResult::ParserResult()
: library(0)
, targetInfo(0)
: targetInfo(0)
{
}
ParserResult::ParserResult(const ParserResult& rhs)
: kind(rhs.kind)
, Diagnostics(rhs.Diagnostics)
, library(rhs.library)
, Libraries(rhs.Libraries)
, targetInfo(rhs.targetInfo)
{}
ParserResult::~ParserResult()
{
if (library)
delete library;
for (auto Library : Libraries)
{
delete Library;
}
}
DEF_VECTOR(ParserResult, ParserDiagnostic, Diagnostics)
DEF_VECTOR(ParserResult, NativeLibrary*, Libraries)
LinkerOptions::LinkerOptions() {}
LinkerOptions::~LinkerOptions() {}
DEF_VECTOR_STRING(LinkerOptions, Arguments)
DEF_VECTOR_STRING(LinkerOptions, LibraryDirs)
DEF_VECTOR_STRING(LinkerOptions, Libraries)
ParserDiagnostic::ParserDiagnostic() {}
ParserDiagnostic::ParserDiagnostic(const ParserDiagnostic& rhs)
@ -67,5 +77,5 @@ ParserDiagnostic::ParserDiagnostic(const ParserDiagnostic& rhs) @@ -67,5 +77,5 @@ ParserDiagnostic::ParserDiagnostic(const ParserDiagnostic& rhs)
, lineNumber(rhs.lineNumber)
, columnNumber(rhs.columnNumber)
{}
DEF_VECTOR(ParserResult, ParserDiagnostic, Diagnostics)
} }

17
src/CppParser/CppParser.h

@ -26,7 +26,6 @@ struct CS_API CppParserOptions @@ -26,7 +26,6 @@ struct CS_API CppParserOptions
std::string getClangVersion();
VECTOR_STRING(Arguments)
std::string libraryFile;
// C/C++ header file names.
VECTOR_STRING(SourceFiles)
@ -35,7 +34,6 @@ struct CS_API CppParserOptions @@ -35,7 +34,6 @@ struct CS_API CppParserOptions
VECTOR_STRING(SystemIncludeDirs)
VECTOR_STRING(Defines)
VECTOR_STRING(Undefines)
VECTOR_STRING(LibraryDirs)
VECTOR_STRING(SupportedStdTypes)
CppSharp::CppParser::AST::ASTContext* ASTContext;
@ -56,6 +54,16 @@ private: @@ -56,6 +54,16 @@ private:
std::string clangVersion;
};
struct CS_API LinkerOptions
{
LinkerOptions();
~LinkerOptions();
VECTOR_STRING(Arguments)
VECTOR_STRING(LibraryDirs)
VECTOR_STRING(Libraries)
};
enum class ParserDiagnosticLevel
{
Ignored,
@ -93,8 +101,7 @@ struct CS_API ParserResult @@ -93,8 +101,7 @@ struct CS_API ParserResult
ParserResultKind kind;
VECTOR(ParserDiagnostic, Diagnostics)
NativeLibrary* library;
VECTOR(NativeLibrary*, Libraries)
ParserTargetInfo* targetInfo;
};
@ -112,7 +119,7 @@ class CS_API ClangParser @@ -112,7 +119,7 @@ class CS_API ClangParser
public:
static ParserResult* ParseHeader(CppParserOptions* Opts);
static ParserResult* ParseLibrary(CppParserOptions* Opts);
static ParserResult* ParseLibrary(LinkerOptions* Opts);
};
} }

100
src/CppParser/Parser.cpp

@ -4285,17 +4285,18 @@ ParserResult* Parser::Parse(const std::vector<std::string>& SourceFiles) @@ -4285,17 +4285,18 @@ ParserResult* Parser::Parse(const std::vector<std::string>& SourceFiles)
ParserResultKind Parser::ParseArchive(llvm::StringRef File,
llvm::object::Archive* Archive,
CppSharp::CppParser::NativeLibrary*& NativeLib)
std::vector<CppSharp::CppParser::NativeLibrary*>& NativeLibs)
{
auto LibName = File;
NativeLib = new NativeLibrary();
auto NativeLib = new NativeLibrary();
NativeLib->fileName = LibName.str();
for(auto it = Archive->symbol_begin(); it != Archive->symbol_end(); ++it)
for (const auto& Symbol : Archive->symbols())
{
llvm::StringRef SymRef = it->getName();
llvm::StringRef SymRef = Symbol.getName();
NativeLib->Symbols.push_back(SymRef.str());
}
NativeLibs.push_back(NativeLib);
return ParserResultKind::Success;
}
@ -4322,12 +4323,13 @@ static void ReadELFDependencies(const llvm::object::ELFFile<ELFT>* ELFFile, CppS @@ -4322,12 +4323,13 @@ static void ReadELFDependencies(const llvm::object::ELFFile<ELFT>* ELFFile, CppS
ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
llvm::object::ObjectFile* ObjectFile,
CppSharp::CppParser::NativeLibrary*& NativeLib)
std::vector<CppSharp::CppParser::NativeLibrary*>& NativeLibs)
{
auto LibName = File;
NativeLib = new NativeLibrary();
auto NativeLib = new NativeLibrary();
NativeLib->fileName = LibName.str();
NativeLib->archType = ConvertArchType(ObjectFile->getArch());
NativeLibs.push_back(NativeLib);
if (ObjectFile->isELF())
{
@ -4378,6 +4380,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, @@ -4378,6 +4380,7 @@ ParserResultKind Parser::ParseSharedLib(llvm::StringRef File,
if (!ImportedSymbol.getName(Name) && (Name.endswith(".dll") || Name.endswith(".DLL")))
NativeLib->Dependencies.push_back(Name.str());
}
return ParserResultKind::Success;
}
@ -4440,57 +4443,61 @@ ParserResultKind Parser::ReadSymbols(llvm::StringRef File, @@ -4440,57 +4443,61 @@ ParserResultKind Parser::ReadSymbols(llvm::StringRef File,
return ParserResultKind::Success;
}
ParserResult* Parser::ParseLibrary(const std::string& File)
ParserResult* Parser::ParseLibrary(const LinkerOptions* Opts)
{
auto res = new ParserResult();
if (File.empty())
{
res->kind = ParserResultKind::FileNotFound;
return res;
}
llvm::StringRef FileEntry("");
for (unsigned I = 0, E = opts->LibraryDirs.size(); I != E; ++I)
for (const auto& File : Opts->Libraries)
{
auto& LibDir = opts->LibraryDirs[I];
llvm::SmallString<256> Path(LibDir);
llvm::sys::path::append(Path, File);
if (File.empty())
{
res->kind = ParserResultKind::FileNotFound;
return res;
}
if (!(FileEntry = Path.str()).empty() && llvm::sys::fs::exists(FileEntry))
break;
}
llvm::StringRef FileEntry("");
if (FileEntry.empty())
{
res->kind = ParserResultKind::FileNotFound;
return res;
}
for (unsigned I = 0, E = Opts->LibraryDirs.size(); I != E; ++I)
{
auto& LibDir = Opts->LibraryDirs[I];
llvm::SmallString<256> Path(LibDir);
llvm::sys::path::append(Path, File);
auto BinaryOrErr = llvm::object::createBinary(FileEntry);
if (!BinaryOrErr)
{
auto Error = BinaryOrErr.takeError();
res->kind = ParserResultKind::Error;
return res;
}
if (!(FileEntry = Path.str()).empty() && llvm::sys::fs::exists(FileEntry))
break;
}
auto OwningBinary = std::move(BinaryOrErr.get());
auto Bin = OwningBinary.getBinary();
if (auto Archive = llvm::dyn_cast<llvm::object::Archive>(Bin)) {
res->kind = ParseArchive(File, Archive, res->library);
if (res->kind == ParserResultKind::Success)
if (FileEntry.empty())
{
res->kind = ParserResultKind::FileNotFound;
return res;
}
}
if (auto ObjectFile = llvm::dyn_cast<llvm::object::ObjectFile>(Bin))
{
res->kind = ParseSharedLib(File, ObjectFile, res->library);
if (res->kind == ParserResultKind::Success)
auto BinaryOrErr = llvm::object::createBinary(FileEntry);
if (!BinaryOrErr)
{
auto Error = BinaryOrErr.takeError();
res->kind = ParserResultKind::Error;
return res;
}
auto OwningBinary = std::move(BinaryOrErr.get());
auto Bin = OwningBinary.getBinary();
if (auto Archive = llvm::dyn_cast<llvm::object::Archive>(Bin)) {
res->kind = ParseArchive(File, Archive, res->Libraries);
if (res->kind == ParserResultKind::Error)
return res;
}
if (auto ObjectFile = llvm::dyn_cast<llvm::object::ObjectFile>(Bin))
{
res->kind = ParseSharedLib(File, ObjectFile, res->Libraries);
if (res->kind == ParserResultKind::Error)
return res;
}
}
res->kind = ParserResultKind::Error;
res->kind = ParserResultKind::Success;
return res;
}
@ -4525,13 +4532,12 @@ ParserResult* ClangParser::ParseHeader(CppParserOptions* Opts) @@ -4525,13 +4532,12 @@ ParserResult* ClangParser::ParseHeader(CppParserOptions* Opts)
return res;
}
ParserResult* ClangParser::ParseLibrary(CppParserOptions* Opts)
ParserResult* ClangParser::ParseLibrary(LinkerOptions* Opts)
{
if (!Opts)
return nullptr;
Parser Parser(Opts);
return Parser.ParseLibrary(Opts->libraryFile);
return Parser::ParseLibrary(Opts);
}
ParserTargetInfo* Parser::GetTargetInfo()

10
src/CppParser/Parser.h

@ -54,7 +54,7 @@ public: @@ -54,7 +54,7 @@ public:
void Setup();
ParserResult* Parse(const std::vector<std::string>& SourceFiles);
ParserResult* ParseLibrary(const std::string& File);
static ParserResult* ParseLibrary(const LinkerOptions* Opts);
void WalkAST(clang::TranslationUnitDecl* TU);
void HandleDeclaration(const clang::Decl* D, Declaration* Decl);
@ -159,10 +159,10 @@ private: @@ -159,10 +159,10 @@ private:
llvm::object::basic_symbol_iterator End,
CppSharp::CppParser::NativeLibrary*& NativeLib);
Declaration* GetDeclarationFromFriend(clang::NamedDecl* FriendDecl);
ParserResultKind ParseArchive(llvm::StringRef File,
llvm::object::Archive* Archive, CppSharp::CppParser::NativeLibrary*& NativeLib);
ParserResultKind ParseSharedLib(llvm::StringRef File,
llvm::object::ObjectFile* ObjectFile, CppSharp::CppParser::NativeLibrary*& NativeLib);
static ParserResultKind ParseArchive(llvm::StringRef File,
llvm::object::Archive* Archive, std::vector<CppSharp::CppParser::NativeLibrary*>& NativeLibs);
static ParserResultKind ParseSharedLib(llvm::StringRef File,
llvm::object::ObjectFile* ObjectFile, std::vector<CppSharp::CppParser::NativeLibrary*>& NativeLibs);
ParserTargetInfo* GetTargetInfo();
int index;

15
src/Generator.Tests/ReadNativeDependenciesTest.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
using System.Collections.Generic;
using CppSharp.Utils;
using NUnit.Framework;
using CppSharp.Parser;
using CppSharp.AST;
namespace CppSharp.Generator.Tests
{
@ -11,7 +11,7 @@ namespace CppSharp.Generator.Tests @@ -11,7 +11,7 @@ namespace CppSharp.Generator.Tests
[Test]
public void TestReadDependenciesWindows()
{
var dependencies = GetDependencies("libexpat-windows");
IList<string> dependencies = GetDependencies("libexpat-windows");
Assert.AreEqual("KERNEL32.dll", dependencies[0]);
Assert.AreEqual("msvcrt.dll", dependencies[1]);
Assert.AreEqual("USER32.dll", dependencies[2]);
@ -20,26 +20,25 @@ namespace CppSharp.Generator.Tests @@ -20,26 +20,25 @@ namespace CppSharp.Generator.Tests
[Test]
public void TestReadDependenciesLinux()
{
var dependencies = GetDependencies("libexpat-linux");
IList<string> dependencies = GetDependencies("libexpat-linux");
Assert.AreEqual("libc.so.6", dependencies[0]);
}
[Test]
public void TestReadDependenciesOSX()
{
var dependencies = GetDependencies("libexpat-osx");
IList<string> dependencies = GetDependencies("libexpat-osx");
Assert.AreEqual("libexpat.1.dylib", dependencies[0]);
Assert.AreEqual("libSystem.B.dylib", dependencies[1]);
}
private static IList<string> GetDependencies(string library)
{
var parserOptions = new ParserOptions();
parserOptions.AddLibraryDirs(GeneratorTest.GetTestsDirectory("Native"));
var driverOptions = new DriverOptions();
var module = driverOptions.AddModule("Test");
Module module = driverOptions.AddModule("Test");
module.LibraryDirs.Add(GeneratorTest.GetTestsDirectory("Native"));
module.Libraries.Add(library);
using (var driver = new Driver(driverOptions) { ParserOptions = parserOptions })
using (var driver = new Driver(driverOptions))
{
driver.Setup();
Assert.IsTrue(driver.ParseLibraries());

9
src/Generator.Tests/ReadNativeSymbolsTest.cs

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
using System.Collections.Generic;
using CppSharp.Utils;
using NUnit.Framework;
using CppSharp.Parser;
using CppSharp.AST;
namespace CppSharp.Generator.Tests
{
@ -306,12 +306,11 @@ namespace CppSharp.Generator.Tests @@ -306,12 +306,11 @@ namespace CppSharp.Generator.Tests
private static IList<string> GetSymbols(string library)
{
var parserOptions = new ParserOptions();
parserOptions.AddLibraryDirs(GeneratorTest.GetTestsDirectory("Native"));
var driverOptions = new DriverOptions();
var module = driverOptions.AddModule("Test");
Module module = driverOptions.AddModule("Test");
module.LibraryDirs.Add(GeneratorTest.GetTestsDirectory("Native"));
module.Libraries.Add(library);
using (var driver = new Driver(driverOptions) { ParserOptions = parserOptions })
using (var driver = new Driver(driverOptions))
{
driver.Setup();
Assert.IsTrue(driver.ParseLibraries());

21
src/Generator/Driver.cs

@ -163,20 +163,25 @@ namespace CppSharp @@ -163,20 +163,25 @@ namespace CppSharp
ClangParser.LibraryParsed += OnFileParsed;
foreach (var module in Options.Modules)
{
foreach (var libraryDir in module.LibraryDirs)
ParserOptions.AddLibraryDirs(libraryDir);
foreach (var library in module.Libraries)
using (var linkerOptions = new LinkerOptions())
{
if (Context.Symbols.Libraries.Any(l => l.FileName == library))
continue;
foreach (var libraryDir in module.LibraryDirs)
linkerOptions.AddLibraryDirs(libraryDir);
foreach (string library in module.Libraries)
{
if (Context.Symbols.Libraries.Any(l => l.FileName == library))
continue;
linkerOptions.AddLibraries(library);
}
using (var res = ClangParser.ParseLibrary(library, ParserOptions))
using (var res = ClangParser.ParseLibrary(linkerOptions))
{
if (res.Kind != ParserResultKind.Success)
continue;
Context.Symbols.Libraries.Add(ClangParser.ConvertLibrary(res.Library));
for (uint i = 0; i < res.LibrariesCount; i++)
Context.Symbols.Libraries.Add(ClangParser.ConvertLibrary(res.GetLibraries(i)));
}
}
}

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

@ -3257,9 +3257,8 @@ namespace CppSharp.Generators.CSharp @@ -3257,9 +3257,8 @@ namespace CppSharp.Generators.CSharp
targetTriple.Contains("osx"))
{
var framework = libName + ".framework";
for (uint i = 0; i < Context.ParserOptions.LibraryDirsCount; i++)
foreach (var libDir in declaration.TranslationUnit.Module.LibraryDirs)
{
var libDir = Context.ParserOptions.GetLibraryDirs(i);
if (Path.GetFileName(libDir) == framework && File.Exists(Path.Combine(libDir, libName)))
return $"@executable_path/../Frameworks/{framework}/{libName}";
}

17
src/Generator/Passes/GenerateSymbolsPass.cs

@ -220,20 +220,23 @@ namespace CppSharp.Passes @@ -220,20 +220,23 @@ namespace CppSharp.Passes
private void CollectSymbols(string outputDir, string library)
{
using (var parserOptions = new ParserOptions())
using (var linkerOptions = new LinkerOptions())
{
parserOptions.AddLibraryDirs(outputDir);
linkerOptions.AddLibraryDirs(outputDir);
var output = GetOutputFile(library);
parserOptions.LibraryFile = output;
using (var parserResult = Parser.ClangParser.ParseLibrary(parserOptions))
linkerOptions.AddLibraries(output);
using (var parserResult = Parser.ClangParser.ParseLibrary(linkerOptions))
{
if (parserResult.Kind == ParserResultKind.Success)
{
var nativeLibrary = ClangParser.ConvertLibrary(parserResult.Library);
lock (@lock)
{
Context.Symbols.Libraries.Add(nativeLibrary);
Context.Symbols.IndexSymbols();
for (uint i = 0; i < parserResult.LibrariesCount; i++)
{
var nativeLibrary = ClangParser.ConvertLibrary(parserResult.GetLibraries(i));
Context.Symbols.Libraries.Add(nativeLibrary);
Context.Symbols.IndexSymbols();
}
}
}
else

7
src/Parser/Parser.cs

@ -47,12 +47,11 @@ namespace CppSharp @@ -47,12 +47,11 @@ namespace CppSharp
/// <summary>
/// Parses a library file with symbols.
/// </summary>
public static ParserResult ParseLibrary(string file, ParserOptions options)
public static ParserResult ParseLibrary(LinkerOptions options)
{
options.LibraryFile = file;
var result = Parser.ClangParser.ParseLibrary(options);
LibraryParsed(file, result);
for (uint i = 0; i < options.LibrariesCount; i++)
LibraryParsed(options.GetLibraries(i), result);
return result;
}

3
src/Parser/ParserOptions.cs

@ -96,9 +96,6 @@ namespace CppSharp.Parser @@ -96,9 +96,6 @@ namespace CppSharp.Parser
foreach (var undefine in module.Undefines)
AddUndefines(undefine);
foreach (var libraryDir in module.LibraryDirs)
AddLibraryDirs(libraryDir);
}
}

Loading…
Cancel
Save