diff --git a/src/CLI/Generator.cs b/src/CLI/Generator.cs index 31b8c2d4..956acb3d 100644 --- a/src/CLI/Generator.cs +++ b/src/CLI/Generator.cs @@ -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 d in options.Defines) { if(string.IsNullOrEmpty(d.Value)) diff --git a/src/CppParser/AST.cpp b/src/CppParser/AST.cpp index 2b9bff1b..c417f81b 100644 --- a/src/CppParser/AST.cpp +++ b/src/CppParser/AST.cpp @@ -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) diff --git a/src/CppParser/Bindings/CLI/CppParser.cpp b/src/CppParser/Bindings/CLI/CppParser.cpp index 9b9c041e..a7234405 100644 --- a/src/CppParser/Bindings/CLI/CppParser.cpp +++ b/src/CppParser/Bindings/CLI/CppParser.cpp @@ -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(__ret)); -} - -void CppSharp::Parser::CppParserOptions::AddLibraryDirs(System::String^ s) -{ - auto ___arg0 = clix::marshalString(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 ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->Arguments = _tmpvalue; } -System::String^ CppSharp::Parser::CppParserOptions::LibraryFile::get() -{ - return clix::marshalString(((::CppSharp::CppParser::CppParserOptions*)NativePtr)->libraryFile); -} - -void CppSharp::Parser::CppParserOptions::LibraryFile::set(System::String^ value) -{ - ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->libraryFile = clix::marshalString(value); -} - System::Collections::Generic::List^ CppSharp::Parser::CppParserOptions::SourceFiles::get() { auto _tmp__SourceFiles = gcnew System::Collections::Generic::List(); @@ -358,28 +329,6 @@ void CppSharp::Parser::CppParserOptions::Undefines::set(System::Collections::Gen ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->Undefines = _tmpvalue; } -System::Collections::Generic::List^ CppSharp::Parser::CppParserOptions::LibraryDirs::get() -{ - auto _tmp__LibraryDirs = gcnew System::Collections::Generic::List(); - for(auto _element : ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->LibraryDirs) - { - auto _marshalElement = clix::marshalString(_element); - _tmp__LibraryDirs->Add(_marshalElement); - } - return _tmp__LibraryDirs; -} - -void CppSharp::Parser::CppParserOptions::LibraryDirs::set(System::Collections::Generic::List^ value) -{ - auto _tmpvalue = std::vector<::std::string>(); - for each(System::String^ _element in value) - { - auto _marshalElement = clix::marshalString(_element); - _tmpvalue.push_back(_marshalElement); - } - ((::CppSharp::CppParser::CppParserOptions*)NativePtr)->LibraryDirs = _tmpvalue; -} - System::Collections::Generic::List^ CppSharp::Parser::CppParserOptions::SupportedStdTypes::get() { auto _tmp__SupportedStdTypes = gcnew System::Collections::Generic::List(); @@ -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(__ret)); +} + +void CppSharp::Parser::LinkerOptions::AddArguments(System::String^ s) +{ + auto ___arg0 = clix::marshalString(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(__ret)); +} + +void CppSharp::Parser::LinkerOptions::AddLibraryDirs(System::String^ s) +{ + auto ___arg0 = clix::marshalString(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(__ret)); +} + +void CppSharp::Parser::LinkerOptions::AddLibraries(System::String^ s) +{ + auto ___arg0 = clix::marshalString(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^ CppSharp::Parser::LinkerOptions::Arguments::get() +{ + auto _tmp__Arguments = gcnew System::Collections::Generic::List(); + for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Arguments) + { + auto _marshalElement = clix::marshalString(_element); + _tmp__Arguments->Add(_marshalElement); + } + return _tmp__Arguments; +} + +void CppSharp::Parser::LinkerOptions::Arguments::set(System::Collections::Generic::List^ value) +{ + auto _tmpvalue = std::vector<::std::string>(); + for each(System::String^ _element in value) + { + auto _marshalElement = clix::marshalString(_element); + _tmpvalue.push_back(_marshalElement); + } + ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Arguments = _tmpvalue; +} + +System::Collections::Generic::List^ CppSharp::Parser::LinkerOptions::LibraryDirs::get() +{ + auto _tmp__LibraryDirs = gcnew System::Collections::Generic::List(); + for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->LibraryDirs) + { + auto _marshalElement = clix::marshalString(_element); + _tmp__LibraryDirs->Add(_marshalElement); + } + return _tmp__LibraryDirs; +} + +void CppSharp::Parser::LinkerOptions::LibraryDirs::set(System::Collections::Generic::List^ value) +{ + auto _tmpvalue = std::vector<::std::string>(); + for each(System::String^ _element in value) + { + auto _marshalElement = clix::marshalString(_element); + _tmpvalue.push_back(_marshalElement); + } + ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->LibraryDirs = _tmpvalue; +} + +System::Collections::Generic::List^ CppSharp::Parser::LinkerOptions::Libraries::get() +{ + auto _tmp__Libraries = gcnew System::Collections::Generic::List(); + for(auto _element : ((::CppSharp::CppParser::LinkerOptions*)NativePtr)->Libraries) + { + auto _marshalElement = clix::marshalString(_element); + _tmp__Libraries->Add(_marshalElement); + } + return _tmp__Libraries; +} + +void CppSharp::Parser::LinkerOptions::Libraries::set(System::Collections::Generic::List^ value) +{ + auto _tmpvalue = std::vector<::std::string>(); + for each(System::String^ _element in value) + { + auto _marshalElement = clix::marshalString(_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() ((::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 ((::CppSharp::CppParser::ParserResult*)NativePtr)->Diagnostics = _tmpvalue; } -CppSharp::Parser::AST::NativeLibrary^ CppSharp::Parser::ParserResult::Library::get() +System::Collections::Generic::List^ 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(); + 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^ 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() 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 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); diff --git a/src/CppParser/Bindings/CLI/CppParser.h b/src/CppParser/Bindings/CLI/CppParser.h index 52136268..40f67beb 100644 --- a/src/CppParser/Bindings/CLI/CppParser.h +++ b/src/CppParser/Bindings/CLI/CppParser.h @@ -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 void set(System::Collections::Generic::List^); } - property System::String^ LibraryFile - { - System::String^ get(); - void set(System::String^); - } - property System::Collections::Generic::List^ SourceFiles { System::Collections::Generic::List^ get(); @@ -122,12 +117,6 @@ namespace CppSharp void set(System::Collections::Generic::List^); } - property System::Collections::Generic::List^ LibraryDirs - { - System::Collections::Generic::List^ get(); - void set(System::Collections::Generic::List^); - } - property System::Collections::Generic::List^ SupportedStdTypes { System::Collections::Generic::List^ get(); @@ -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 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^ Arguments + { + System::Collections::Generic::List^ get(); + void set(System::Collections::Generic::List^); + } + + property System::Collections::Generic::List^ LibraryDirs + { + System::Collections::Generic::List^ get(); + void set(System::Collections::Generic::List^); + } + + property System::Collections::Generic::List^ Libraries + { + System::Collections::Generic::List^ get(); + void set(System::Collections::Generic::List^); + } + + 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 void set(System::Collections::Generic::List^); } - property CppSharp::Parser::AST::NativeLibrary^ Library + property System::Collections::Generic::List^ Libraries { - CppSharp::Parser::AST::NativeLibrary^ get(); - void set(CppSharp::Parser::AST::NativeLibrary^); + System::Collections::Generic::List^ get(); + void set(System::Collections::Generic::List^); } property CppSharp::Parser::ParserTargetInfo^ TargetInfo @@ -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 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; diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs index 4578a105..3dde5399 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs index b729fa41..c3f9a4b8 100644 --- a/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs +++ b/src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std.cs @@ -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 [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_; + } } } diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs index 1ba862b4..199049a1 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs index e974a180..71550099 100644 --- a/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std.cs @@ -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 [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 diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs index b704f650..a14d9167 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs index 21b0f97d..a3ebff89 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std.cs @@ -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 [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_; + } } } diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs index 6c2ffc65..cbb4e789 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs index de9d1f3e..d860790a 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std.cs @@ -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 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)] diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs index ae7d65f5..0d7bbdf7 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs index 57df9fb3..e785e3fc 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std.cs @@ -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 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)] diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs index 0be01999..bc6e6687 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/CppSharp.CppParser.cs @@ -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 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 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 __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 __Internal.ClearSupportedStdTypes(__Instance); } - public string LibraryFile - { - get - { - var __basicStringRet0 = global::Std.BasicString, global::Std.Allocator>.__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 } } + 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 NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary(); + + 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 } } - 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 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 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 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 __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 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 [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 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); diff --git a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs index 4a27fda2..b2b3d2e1 100644 --- a/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs +++ b/src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std.cs @@ -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 [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 diff --git a/src/CppParser/CppParser.cpp b/src/CppParser/CppParser.cpp index a7e6dcf2..070a87c8 100644 --- a/src/CppParser/CppParser.cpp +++ b/src/CppParser/CppParser.cpp @@ -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) , lineNumber(rhs.lineNumber) , columnNumber(rhs.columnNumber) {} -DEF_VECTOR(ParserResult, ParserDiagnostic, Diagnostics) + } } \ No newline at end of file diff --git a/src/CppParser/CppParser.h b/src/CppParser/CppParser.h index 7ea2d3d2..9f60df44 100644 --- a/src/CppParser/CppParser.h +++ b/src/CppParser/CppParser.h @@ -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 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: 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 ParserResultKind kind; VECTOR(ParserDiagnostic, Diagnostics) - - NativeLibrary* library; + VECTOR(NativeLibrary*, Libraries) ParserTargetInfo* targetInfo; }; @@ -112,7 +119,7 @@ class CS_API ClangParser public: static ParserResult* ParseHeader(CppParserOptions* Opts); - static ParserResult* ParseLibrary(CppParserOptions* Opts); + static ParserResult* ParseLibrary(LinkerOptions* Opts); }; } } \ No newline at end of file diff --git a/src/CppParser/Parser.cpp b/src/CppParser/Parser.cpp index 25b5a570..39575832 100644 --- a/src/CppParser/Parser.cpp +++ b/src/CppParser/Parser.cpp @@ -4285,17 +4285,18 @@ ParserResult* Parser::Parse(const std::vector& SourceFiles) ParserResultKind Parser::ParseArchive(llvm::StringRef File, llvm::object::Archive* Archive, - CppSharp::CppParser::NativeLibrary*& NativeLib) + std::vector& 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* ELFFile, CppS ParserResultKind Parser::ParseSharedLib(llvm::StringRef File, llvm::object::ObjectFile* ObjectFile, - CppSharp::CppParser::NativeLibrary*& NativeLib) + std::vector& 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, 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, 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(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(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(Bin)) { + res->kind = ParseArchive(File, Archive, res->Libraries); + if (res->kind == ParserResultKind::Error) + return res; + } + + if (auto ObjectFile = llvm::dyn_cast(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) 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() diff --git a/src/CppParser/Parser.h b/src/CppParser/Parser.h index 66e04228..beea4025 100644 --- a/src/CppParser/Parser.h +++ b/src/CppParser/Parser.h @@ -54,7 +54,7 @@ public: void Setup(); ParserResult* Parse(const std::vector& 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: 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& NativeLibs); + static ParserResultKind ParseSharedLib(llvm::StringRef File, + llvm::object::ObjectFile* ObjectFile, std::vector& NativeLibs); ParserTargetInfo* GetTargetInfo(); int index; diff --git a/src/Generator.Tests/ReadNativeDependenciesTest.cs b/src/Generator.Tests/ReadNativeDependenciesTest.cs index 1fd2b924..3e2bae29 100644 --- a/src/Generator.Tests/ReadNativeDependenciesTest.cs +++ b/src/Generator.Tests/ReadNativeDependenciesTest.cs @@ -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 [Test] public void TestReadDependenciesWindows() { - var dependencies = GetDependencies("libexpat-windows"); + IList 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 [Test] public void TestReadDependenciesLinux() { - var dependencies = GetDependencies("libexpat-linux"); + IList dependencies = GetDependencies("libexpat-linux"); Assert.AreEqual("libc.so.6", dependencies[0]); } [Test] public void TestReadDependenciesOSX() { - var dependencies = GetDependencies("libexpat-osx"); + IList dependencies = GetDependencies("libexpat-osx"); Assert.AreEqual("libexpat.1.dylib", dependencies[0]); Assert.AreEqual("libSystem.B.dylib", dependencies[1]); } private static IList 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()); diff --git a/src/Generator.Tests/ReadNativeSymbolsTest.cs b/src/Generator.Tests/ReadNativeSymbolsTest.cs index aacdd0c6..eba43ddc 100644 --- a/src/Generator.Tests/ReadNativeSymbolsTest.cs +++ b/src/Generator.Tests/ReadNativeSymbolsTest.cs @@ -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 private static IList 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()); diff --git a/src/Generator/Driver.cs b/src/Generator/Driver.cs index 4cfbc6f6..45844fb2 100644 --- a/src/Generator/Driver.cs +++ b/src/Generator/Driver.cs @@ -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))); } } } diff --git a/src/Generator/Generators/CSharp/CSharpSources.cs b/src/Generator/Generators/CSharp/CSharpSources.cs index 28fb4be3..693e2267 100644 --- a/src/Generator/Generators/CSharp/CSharpSources.cs +++ b/src/Generator/Generators/CSharp/CSharpSources.cs @@ -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}"; } diff --git a/src/Generator/Passes/GenerateSymbolsPass.cs b/src/Generator/Passes/GenerateSymbolsPass.cs index c2b4499b..bca33edc 100644 --- a/src/Generator/Passes/GenerateSymbolsPass.cs +++ b/src/Generator/Passes/GenerateSymbolsPass.cs @@ -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 diff --git a/src/Parser/Parser.cs b/src/Parser/Parser.cs index 7dc08f94..5c1c891e 100644 --- a/src/Parser/Parser.cs +++ b/src/Parser/Parser.cs @@ -47,12 +47,11 @@ namespace CppSharp /// /// Parses a library file with symbols. /// - 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; } diff --git a/src/Parser/ParserOptions.cs b/src/Parser/ParserOptions.cs index bdfd6d38..f3949afa 100644 --- a/src/Parser/ParserOptions.cs +++ b/src/Parser/ParserOptions.cs @@ -96,9 +96,6 @@ namespace CppSharp.Parser foreach (var undefine in module.Undefines) AddUndefines(undefine); - - foreach (var libraryDir in module.LibraryDirs) - AddLibraryDirs(libraryDir); } }