Add built-in compilation of extra symbols

Fixes https://github.com/mono/CppSharp/issues/1456 and https://github.com/mono/CppSharp/issues/1253.

Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
This commit is contained in:
Dimitar Dobrev 2021-09-18 23:14:03 +03:00
Родитель 1e60113327
Коммит 3aab30f572
47 изменённых файлов: 1474 добавлений и 1235 удалений

Просмотреть файл

@ -42,6 +42,7 @@ function SetupLLVMIncludes()
includedirs
{
path.join(LLVMRootDirDebug, "include"),
path.join(LLVMRootDirDebug, "lld/include"),
path.join(LLVMRootDirDebug, "clang/include"),
path.join(LLVMRootDirDebug, "clang/lib"),
path.join(LLVMRootDirDebug, "build/include"),
@ -52,6 +53,7 @@ function SetupLLVMIncludes()
includedirs
{
path.join(LLVMRootDirRelease, "include"),
path.join(LLVMRootDirRelease, "lld/include"),
path.join(LLVMRootDirRelease, "clang/include"),
path.join(LLVMRootDirRelease, "clang/lib"),
path.join(LLVMRootDirRelease, "build/include"),
@ -62,6 +64,7 @@ function SetupLLVMIncludes()
includedirs
{
path.join(LLVMRootDir, "include"),
path.join(LLVMRootDir, "lld/include"),
path.join(LLVMRootDir, "clang/include"),
path.join(LLVMRootDir, "clang/lib"),
path.join(LLVMBuildDir, "include"),
@ -195,7 +198,16 @@ function SetupLLVMLibs()
"LLVMDebugInfoMSF",
"LLVMBinaryFormat",
"LLVMSupport",
"LLVMDemangle"
"LLVMDemangle",
"lldCommon",
"lldCore",
"lldCOFF",
"lldELF",
"lldDriver",
"lldReaderWriter",
"lldYAML",
"lldMachO",
"lldMachOOld"
}
filter(c)

Просмотреть файл

@ -10,7 +10,8 @@ namespace CppSharp.AST
{
var parts = targetTriple.Split('-');
return parts.Contains("windows") ||
parts.Contains("win32") || parts.Contains("win64");
parts.Contains("win32") || parts.Contains("win64") ||
parts.Any(p => p.StartsWith("mingw"));
}
public static bool IsMacOS(this string targetTriple)

Просмотреть файл

@ -64,6 +64,25 @@ void CppSharp::Parser::CppParserOptions::ClearArguments()
((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->clearArguments();
}
::System::String^ CppSharp::Parser::CppParserOptions::GetCompilationOptions(unsigned int i)
{
auto __ret = ((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->getCompilationOptions(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::CppParserOptions::AddCompilationOptions(::System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->addCompilationOptions(__arg0);
}
void CppSharp::Parser::CppParserOptions::ClearCompilationOptions()
{
((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->clearCompilationOptions();
}
::System::String^ CppSharp::Parser::CppParserOptions::GetSourceFiles(unsigned int i)
{
auto __ret = ((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->getSourceFiles(i);
@ -220,6 +239,29 @@ void CppSharp::Parser::CppParserOptions::Arguments::set(::System::Collections::G
((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->Arguments = _tmpvalue;
}
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::CppParserOptions::CompilationOptions::get()
{
auto _tmp__CompilationOptions = gcnew ::System::Collections::Generic::List<::System::String^>();
auto __list0 = NativePtr->CompilationOptions;
for(auto _element : __list0)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmp__CompilationOptions->Add(_marshalElement);
}
return _tmp__CompilationOptions;
}
void CppSharp::Parser::CppParserOptions::CompilationOptions::set(::System::Collections::Generic::List<::System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(::System::String^ _element in value)
{
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->CompilationOptions = _tmpvalue;
}
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::CppParserOptions::SourceFiles::get()
{
auto _tmp__SourceFiles = gcnew ::System::Collections::Generic::List<::System::String^>();
@ -480,6 +522,12 @@ unsigned int CppSharp::Parser::CppParserOptions::ArgumentsCount::get()
return __ret;
}
unsigned int CppSharp::Parser::CppParserOptions::CompilationOptionsCount::get()
{
auto __ret = ((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->getCompilationOptionsCount();
return __ret;
}
unsigned int CppSharp::Parser::CppParserOptions::SourceFilesCount::get()
{
auto __ret = ((struct ::CppSharp::CppParser::CppParserOptions*)NativePtr)->getSourceFilesCount();
@ -516,116 +564,116 @@ unsigned int CppSharp::Parser::CppParserOptions::SupportedStdTypesCount::get()
return __ret;
}
CppSharp::Parser::LinkerOptions::LinkerOptions(struct ::CppSharp::CppParser::LinkerOptions* native)
CppSharp::Parser::CppLinkerOptions::CppLinkerOptions(struct ::CppSharp::CppParser::CppLinkerOptions* native)
: __ownsNativeInstance(false)
{
NativePtr = native;
}
CppSharp::Parser::LinkerOptions^ CppSharp::Parser::LinkerOptions::__CreateInstance(::System::IntPtr native)
CppSharp::Parser::CppLinkerOptions^ CppSharp::Parser::CppLinkerOptions::__CreateInstance(::System::IntPtr native)
{
return gcnew ::CppSharp::Parser::LinkerOptions((struct ::CppSharp::CppParser::LinkerOptions*) native.ToPointer());
return gcnew ::CppSharp::Parser::CppLinkerOptions((struct ::CppSharp::CppParser::CppLinkerOptions*) native.ToPointer());
}
CppSharp::Parser::LinkerOptions::LinkerOptions(struct ::CppSharp::CppParser::LinkerOptions* native, bool ownNativeInstance)
CppSharp::Parser::CppLinkerOptions::CppLinkerOptions(struct ::CppSharp::CppParser::CppLinkerOptions* native, bool ownNativeInstance)
: __ownsNativeInstance(ownNativeInstance)
{
NativePtr = native;
}
CppSharp::Parser::LinkerOptions^ CppSharp::Parser::LinkerOptions::__CreateInstance(::System::IntPtr native, bool __ownsNativeInstance)
CppSharp::Parser::CppLinkerOptions^ CppSharp::Parser::CppLinkerOptions::__CreateInstance(::System::IntPtr native, bool __ownsNativeInstance)
{
return gcnew ::CppSharp::Parser::LinkerOptions((struct ::CppSharp::CppParser::LinkerOptions*) native.ToPointer(), __ownsNativeInstance);
return gcnew ::CppSharp::Parser::CppLinkerOptions((struct ::CppSharp::CppParser::CppLinkerOptions*) native.ToPointer(), __ownsNativeInstance);
}
CppSharp::Parser::LinkerOptions::~LinkerOptions()
CppSharp::Parser::CppLinkerOptions::~CppLinkerOptions()
{
delete NativePtr;
}
CppSharp::Parser::LinkerOptions::LinkerOptions()
CppSharp::Parser::CppLinkerOptions::CppLinkerOptions()
{
__ownsNativeInstance = true;
NativePtr = new struct ::CppSharp::CppParser::LinkerOptions();
NativePtr = new struct ::CppSharp::CppParser::CppLinkerOptions();
}
::System::String^ CppSharp::Parser::LinkerOptions::GetArguments(unsigned int i)
::System::String^ CppSharp::Parser::CppLinkerOptions::GetArguments(unsigned int i)
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getArguments(i);
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getArguments(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddArguments(::System::String^ s)
void CppSharp::Parser::CppLinkerOptions::AddArguments(::System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->addArguments(__arg0);
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->addArguments(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearArguments()
void CppSharp::Parser::CppLinkerOptions::ClearArguments()
{
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearArguments();
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->clearArguments();
}
::System::String^ CppSharp::Parser::LinkerOptions::GetLibraryDirs(unsigned int i)
::System::String^ CppSharp::Parser::CppLinkerOptions::GetLibraryDirs(unsigned int i)
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraryDirs(i);
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getLibraryDirs(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddLibraryDirs(::System::String^ s)
void CppSharp::Parser::CppLinkerOptions::AddLibraryDirs(::System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->addLibraryDirs(__arg0);
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->addLibraryDirs(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearLibraryDirs()
void CppSharp::Parser::CppLinkerOptions::ClearLibraryDirs()
{
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearLibraryDirs();
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->clearLibraryDirs();
}
::System::String^ CppSharp::Parser::LinkerOptions::GetLibraries(unsigned int i)
::System::String^ CppSharp::Parser::CppLinkerOptions::GetLibraries(unsigned int i)
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraries(i);
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getLibraries(i);
if (__ret == nullptr) return nullptr;
return (__ret == 0 ? nullptr : clix::marshalString<clix::E_UTF8>(__ret));
}
void CppSharp::Parser::LinkerOptions::AddLibraries(::System::String^ s)
void CppSharp::Parser::CppLinkerOptions::AddLibraries(::System::String^ s)
{
auto ___arg0 = clix::marshalString<clix::E_UTF8>(s);
auto __arg0 = ___arg0.c_str();
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->addLibraries(__arg0);
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->addLibraries(__arg0);
}
void CppSharp::Parser::LinkerOptions::ClearLibraries()
void CppSharp::Parser::CppLinkerOptions::ClearLibraries()
{
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->clearLibraries();
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->clearLibraries();
}
CppSharp::Parser::LinkerOptions::LinkerOptions(CppSharp::Parser::LinkerOptions^ _0)
CppSharp::Parser::CppLinkerOptions::CppLinkerOptions(CppSharp::Parser::CppLinkerOptions^ _0)
{
__ownsNativeInstance = true;
if (ReferenceEquals(_0, nullptr))
throw gcnew ::System::ArgumentNullException("_0", "Cannot be null because it is a C++ reference (&).");
auto &__arg0 = *(struct ::CppSharp::CppParser::LinkerOptions*)_0->NativePtr;
NativePtr = new struct ::CppSharp::CppParser::LinkerOptions(__arg0);
auto &__arg0 = *(struct ::CppSharp::CppParser::CppLinkerOptions*)_0->NativePtr;
NativePtr = new struct ::CppSharp::CppParser::CppLinkerOptions(__arg0);
}
::System::IntPtr CppSharp::Parser::LinkerOptions::__Instance::get()
::System::IntPtr CppSharp::Parser::CppLinkerOptions::__Instance::get()
{
return ::System::IntPtr(NativePtr);
}
void CppSharp::Parser::LinkerOptions::__Instance::set(::System::IntPtr object)
void CppSharp::Parser::CppLinkerOptions::__Instance::set(::System::IntPtr object)
{
NativePtr = (struct ::CppSharp::CppParser::LinkerOptions*)object.ToPointer();
NativePtr = (struct ::CppSharp::CppParser::CppLinkerOptions*)object.ToPointer();
}
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::LinkerOptions::Arguments::get()
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::CppLinkerOptions::Arguments::get()
{
auto _tmp__Arguments = gcnew ::System::Collections::Generic::List<::System::String^>();
auto __list0 = NativePtr->Arguments;
@ -637,7 +685,7 @@ void CppSharp::Parser::LinkerOptions::__Instance::set(::System::IntPtr object)
return _tmp__Arguments;
}
void CppSharp::Parser::LinkerOptions::Arguments::set(::System::Collections::Generic::List<::System::String^>^ value)
void CppSharp::Parser::CppLinkerOptions::Arguments::set(::System::Collections::Generic::List<::System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(::System::String^ _element in value)
@ -645,10 +693,10 @@ void CppSharp::Parser::LinkerOptions::Arguments::set(::System::Collections::Gene
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->Arguments = _tmpvalue;
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->Arguments = _tmpvalue;
}
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::LinkerOptions::LibraryDirs::get()
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::CppLinkerOptions::LibraryDirs::get()
{
auto _tmp__LibraryDirs = gcnew ::System::Collections::Generic::List<::System::String^>();
auto __list0 = NativePtr->LibraryDirs;
@ -660,7 +708,7 @@ void CppSharp::Parser::LinkerOptions::Arguments::set(::System::Collections::Gene
return _tmp__LibraryDirs;
}
void CppSharp::Parser::LinkerOptions::LibraryDirs::set(::System::Collections::Generic::List<::System::String^>^ value)
void CppSharp::Parser::CppLinkerOptions::LibraryDirs::set(::System::Collections::Generic::List<::System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(::System::String^ _element in value)
@ -668,10 +716,10 @@ void CppSharp::Parser::LinkerOptions::LibraryDirs::set(::System::Collections::Ge
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->LibraryDirs = _tmpvalue;
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->LibraryDirs = _tmpvalue;
}
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::LinkerOptions::Libraries::get()
::System::Collections::Generic::List<::System::String^>^ CppSharp::Parser::CppLinkerOptions::Libraries::get()
{
auto _tmp__Libraries = gcnew ::System::Collections::Generic::List<::System::String^>();
auto __list0 = NativePtr->Libraries;
@ -683,7 +731,7 @@ void CppSharp::Parser::LinkerOptions::LibraryDirs::set(::System::Collections::Ge
return _tmp__Libraries;
}
void CppSharp::Parser::LinkerOptions::Libraries::set(::System::Collections::Generic::List<::System::String^>^ value)
void CppSharp::Parser::CppLinkerOptions::Libraries::set(::System::Collections::Generic::List<::System::String^>^ value)
{
auto _tmpvalue = std::vector<::std::string>();
for each(::System::String^ _element in value)
@ -691,24 +739,24 @@ void CppSharp::Parser::LinkerOptions::Libraries::set(::System::Collections::Gene
auto _marshalElement = clix::marshalString<clix::E_UTF8>(_element);
_tmpvalue.push_back(_marshalElement);
}
((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->Libraries = _tmpvalue;
((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->Libraries = _tmpvalue;
}
unsigned int CppSharp::Parser::LinkerOptions::ArgumentsCount::get()
unsigned int CppSharp::Parser::CppLinkerOptions::ArgumentsCount::get()
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getArgumentsCount();
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getArgumentsCount();
return __ret;
}
unsigned int CppSharp::Parser::LinkerOptions::LibraryDirsCount::get()
unsigned int CppSharp::Parser::CppLinkerOptions::LibraryDirsCount::get()
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibraryDirsCount();
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getLibraryDirsCount();
return __ret;
}
unsigned int CppSharp::Parser::LinkerOptions::LibrariesCount::get()
unsigned int CppSharp::Parser::CppLinkerOptions::LibrariesCount::get()
{
auto __ret = ((struct ::CppSharp::CppParser::LinkerOptions*)NativePtr)->getLibrariesCount();
auto __ret = ((struct ::CppSharp::CppParser::CppLinkerOptions*)NativePtr)->getLibrariesCount();
return __ret;
}
@ -1022,14 +1070,43 @@ CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseHeader(CppSh
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((struct ::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::LinkerOptions^ Opts)
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::ParseLibrary(CppSharp::Parser::CppLinkerOptions^ Opts)
{
auto __arg0 = (struct ::CppSharp::CppParser::LinkerOptions*)Opts->NativePtr;
auto __arg0 = (struct ::CppSharp::CppParser::CppLinkerOptions*)Opts->NativePtr;
auto __ret = ::CppSharp::CppParser::ClangParser::ParseLibrary(__arg0);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((struct ::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::Build(CppSharp::Parser::CppParserOptions^ Opts, CppSharp::Parser::CppLinkerOptions^ LinkerOptions, ::System::String^ File, bool Last)
{
auto __arg0 = (struct ::CppSharp::CppParser::CppParserOptions*)Opts->NativePtr;
auto __arg1 = (struct ::CppSharp::CppParser::CppLinkerOptions*)LinkerOptions->NativePtr;
auto __arg2 = clix::marshalString<clix::E_UTF8>(File);
auto __ret = ::CppSharp::CppParser::ClangParser::Build(__arg0, __arg1, __arg2, Last);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((struct ::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::Compile(CppSharp::Parser::CppParserOptions^ Opts, ::System::String^ File)
{
auto __arg0 = (struct ::CppSharp::CppParser::CppParserOptions*)Opts->NativePtr;
auto __arg1 = clix::marshalString<clix::E_UTF8>(File);
auto __ret = ::CppSharp::CppParser::ClangParser::Compile(__arg0, __arg1);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((struct ::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ParserResult^ CppSharp::Parser::ClangParser::Link(CppSharp::Parser::CppParserOptions^ Opts, CppSharp::Parser::CppLinkerOptions^ LinkerOptions, ::System::String^ File, bool Last)
{
auto __arg0 = (struct ::CppSharp::CppParser::CppParserOptions*)Opts->NativePtr;
auto __arg1 = (struct ::CppSharp::CppParser::CppLinkerOptions*)LinkerOptions->NativePtr;
auto __arg2 = clix::marshalString<clix::E_UTF8>(File);
auto __ret = ::CppSharp::CppParser::ClangParser::Link(__arg0, __arg1, __arg2, Last);
if (__ret == nullptr) return nullptr;
return (__ret == nullptr) ? nullptr : gcnew ::CppSharp::Parser::ParserResult((struct ::CppSharp::CppParser::ParserResult*)__ret);
}
CppSharp::Parser::ClangParser::ClangParser()
{
__ownsNativeInstance = true;

Просмотреть файл

@ -17,8 +17,8 @@ namespace CppSharp
enum class ParserResultKind;
enum class SourceLocationKind;
ref class ClangParser;
ref class CppLinkerOptions;
ref class CppParserOptions;
ref class LinkerOptions;
ref class Parser;
ref class ParserDiagnostic;
ref class ParserResult;
@ -87,6 +87,12 @@ namespace CppSharp
void set(::System::Collections::Generic::List<::System::String^>^);
}
property ::System::Collections::Generic::List<::System::String^>^ CompilationOptions
{
::System::Collections::Generic::List<::System::String^>^ get();
void set(::System::Collections::Generic::List<::System::String^>^);
}
property ::System::Collections::Generic::List<::System::String^>^ SourceFiles
{
::System::Collections::Generic::List<::System::String^>^ get();
@ -199,6 +205,11 @@ namespace CppSharp
unsigned int get();
}
property unsigned int CompilationOptionsCount
{
unsigned int get();
}
property unsigned int SourceFilesCount
{
unsigned int get();
@ -235,6 +246,12 @@ namespace CppSharp
void ClearArguments();
::System::String^ GetCompilationOptions(unsigned int i);
void AddCompilationOptions(::System::String^ s);
void ClearCompilationOptions();
::System::String^ GetSourceFiles(unsigned int i);
void AddSourceFiles(::System::String^ s);
@ -276,26 +293,26 @@ namespace CppSharp
bool __ownsNativeInstance;
};
public ref class LinkerOptions : ICppInstance
public ref class CppLinkerOptions : ICppInstance
{
public:
property struct ::CppSharp::CppParser::LinkerOptions* NativePtr;
property struct ::CppSharp::CppParser::CppLinkerOptions* NativePtr;
property ::System::IntPtr __Instance
{
virtual ::System::IntPtr get();
virtual void set(::System::IntPtr instance);
}
LinkerOptions(struct ::CppSharp::CppParser::LinkerOptions* native);
LinkerOptions(struct ::CppSharp::CppParser::LinkerOptions* native, bool ownNativeInstance);
static LinkerOptions^ __CreateInstance(::System::IntPtr native);
static LinkerOptions^ __CreateInstance(::System::IntPtr native, bool __ownsNativeInstance);
LinkerOptions();
CppLinkerOptions(struct ::CppSharp::CppParser::CppLinkerOptions* native);
CppLinkerOptions(struct ::CppSharp::CppParser::CppLinkerOptions* native, bool ownNativeInstance);
static CppLinkerOptions^ __CreateInstance(::System::IntPtr native);
static CppLinkerOptions^ __CreateInstance(::System::IntPtr native, bool __ownsNativeInstance);
CppLinkerOptions();
LinkerOptions(CppSharp::Parser::LinkerOptions^ _0);
CppLinkerOptions(CppSharp::Parser::CppLinkerOptions^ _0);
~LinkerOptions();
~CppLinkerOptions();
property ::System::Collections::Generic::List<::System::String^>^ Arguments
{
@ -504,7 +521,13 @@ namespace CppSharp
static CppSharp::Parser::ParserResult^ ParseHeader(CppSharp::Parser::CppParserOptions^ Opts);
static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::LinkerOptions^ Opts);
static CppSharp::Parser::ParserResult^ ParseLibrary(CppSharp::Parser::CppLinkerOptions^ Opts);
static CppSharp::Parser::ParserResult^ Build(CppSharp::Parser::CppParserOptions^ Opts, CppSharp::Parser::CppLinkerOptions^ LinkerOptions, ::System::String^ File, bool Last);
static CppSharp::Parser::ParserResult^ Compile(CppSharp::Parser::CppParserOptions^ Opts, ::System::String^ File);
static CppSharp::Parser::ParserResult^ Link(CppSharp::Parser::CppParserOptions^ Opts, CppSharp::Parser::CppLinkerOptions^ LinkerOptions, ::System::String^ File, bool Last);
protected:

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" void c__N_CppSharp_N_CppParser_S_ParserTargetInfo_ParserTargetInfo___
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39478,10 +39478,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 124)]
[StructLayout(LayoutKind.Sequential, Size = 136)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39519,6 +39520,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21getCompilationOptionsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21addCompilationOptionsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions23clearCompilationOptionsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14getSourceFilesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39579,6 +39589,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions26getCompilationOptionsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions19getSourceFilesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39702,6 +39715,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -39965,6 +39994,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40020,7 +40058,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 36)]
public partial struct __Internal
@ -40029,112 +40067,112 @@ namespace CppSharp
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;
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", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40648,8 +40686,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser11ParseHeaderEPNS0_16CppParserOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppLinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser5BuildEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser7CompileEPNS0_16CppParserOptionsERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser4LinkEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40742,13 +40789,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_ParserTargetIn
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39489,10 +39489,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 148)]
[StructLayout(LayoutKind.Sequential, Size = 160)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39530,6 +39531,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@CppParserOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getCompilationOptions@CppParserOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addCompilationOptions@CppParserOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearCompilationOptions@CppParserOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getSourceFiles@CppParserOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39590,6 +39600,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getCompilationOptionsCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getSourceFilesCount@CppParserOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39713,6 +39726,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -39976,6 +40005,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40031,7 +40069,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 36)]
public partial struct __Internal
@ -40040,112 +40078,112 @@ namespace CppSharp
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;
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", EntryPoint = "??0LinkerOptions@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0CppLinkerOptions@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0LinkerOptions@CppParser@CppSharp@@QAE@ABU012@@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0CppLinkerOptions@CppParser@CppSharp@@QAE@ABU012@@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??1LinkerOptions@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??1CppLinkerOptions@CppParser@CppSharp@@QAE@XZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArguments@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArguments@CppLinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addArguments@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addArguments@CppLinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@LinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@CppLinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraryDirs@LinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraries@LinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraries@CppLinkerOptions@CppParser@CppSharp@@QAEPBDI@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraries@LinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraries@CppLinkerOptions@CppParser@CppSharp@@QAEXPBD@Z", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraries@LinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraries@CppLinkerOptions@CppParser@CppSharp@@QAEXXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@CppLinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirsCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirsCount@CppLinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibrariesCount@LinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibrariesCount@CppLinkerOptions@CppParser@CppSharp@@QAEIXZ", CallingConvention = __CallingConvention.ThisCall)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40659,8 +40697,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseHeader@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppParserOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAULinkerOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppLinkerOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Build@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppParserOptions@23@PBUCppLinkerOptions@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Compile@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppParserOptions@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Link@ClangParser@CppParser@CppSharp@@SAPAUParserResult@23@PAUCppParserOptions@23@PBUCppLinkerOptions@23@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40753,13 +40800,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" void c__N_CppSharp_N_CppParser_S_ParserTargetInfo_ParserTargetInfo___
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39477,10 +39477,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 240)]
[StructLayout(LayoutKind.Sequential, Size = 264)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39518,6 +39519,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21getCompilationOptionsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21addCompilationOptionsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions23clearCompilationOptionsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14getSourceFilesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39578,6 +39588,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions26getCompilationOptionsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions19getSourceFilesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39701,6 +39714,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -39964,6 +39993,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40019,7 +40057,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 72)]
public partial struct __Internal
@ -40028,112 +40066,112 @@ namespace CppSharp
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;
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", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40647,8 +40685,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser11ParseHeaderEPNS0_16CppParserOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppLinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser5BuildEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser7CompileEPNS0_16CppParserOptionsERKNSt3__112basic_stringIcNS4_11char_traitsIcEENS4_9allocatorIcEEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser4LinkEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt3__112basic_stringIcNS7_11char_traitsIcEENS7_9allocatorIcEEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40741,13 +40788,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" void c__N_CppSharp_N_CppParser_S_ParserTargetInfo_ParserTargetInfo___
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39477,10 +39477,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 256)]
[StructLayout(LayoutKind.Sequential, Size = 280)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39518,6 +39519,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21getCompilationOptionsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21addCompilationOptionsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions23clearCompilationOptionsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14getSourceFilesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39578,6 +39588,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions26getCompilationOptionsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions19getSourceFilesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39701,6 +39714,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -39964,6 +39993,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40019,7 +40057,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 72)]
public partial struct __Internal
@ -40028,112 +40066,112 @@ namespace CppSharp
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;
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", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40647,8 +40685,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser11ParseHeaderEPNS0_16CppParserOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppLinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser5BuildEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser7CompileEPNS0_16CppParserOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser4LinkEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40741,13 +40788,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" void c__N_CppSharp_N_CppParser_S_ParserTargetInfo_ParserTargetInfo___
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39477,10 +39477,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 208)]
[StructLayout(LayoutKind.Sequential, Size = 232)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39518,6 +39519,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21getCompilationOptionsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions21addCompilationOptionsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions23clearCompilationOptionsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions14getSourceFilesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39578,6 +39588,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions26getCompilationOptionsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppParserOptions19getSourceFilesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39701,6 +39714,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -39964,6 +39993,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40019,7 +40057,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 72)]
public partial struct __Internal
@ -40028,112 +40066,112 @@ namespace CppSharp
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;
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", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsC2ERKS1_", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptionsD2Ev", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getArgumentsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addArgumentsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearArgumentsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14getLibraryDirsEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14addLibraryDirsEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions16clearLibraryDirsEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12getLibrariesEj", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions12addLibrariesEPKc", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions14clearLibrariesEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getArgumentsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions19getLibraryDirsCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser13LinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser16CppLinkerOptions17getLibrariesCountEv", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40647,8 +40685,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser11ParseHeaderEPNS0_16CppParserOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_13LinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser12ParseLibraryEPNS0_16CppLinkerOptionsE", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser5BuildEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKSsb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser7CompileEPNS0_16CppParserOptionsERKSs", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser", EntryPoint = "_ZN8CppSharp9CppParser11ClangParser4LinkEPNS0_16CppParserOptionsEPKNS0_16CppLinkerOptionsERKSsb", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40741,13 +40788,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -372,8 +372,8 @@ extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_ParserTargetIn
struct CppSharp::CppParser::ParserTargetInfo& (CppSharp::CppParser::ParserTargetInfo::*_239)(const struct CppSharp::CppParser::ParserTargetInfo&) = &CppSharp::CppParser::ParserTargetInfo::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_CppParserOptions_CppParserOptions___1__N_CppSharp_N_CppParser_S_CppParserOptions(void* __instance, const CppSharp::CppParser::CppParserOptions& _0) { ::new (__instance) CppSharp::CppParser::CppParserOptions(_0); }
struct CppSharp::CppParser::CppParserOptions& (CppSharp::CppParser::CppParserOptions::*_240)(const struct CppSharp::CppParser::CppParserOptions&) = &CppSharp::CppParser::CppParserOptions::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_LinkerOptions_LinkerOptions___1__N_CppSharp_N_CppParser_S_LinkerOptions(void* __instance, const CppSharp::CppParser::LinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::LinkerOptions(_0); }
struct CppSharp::CppParser::LinkerOptions& (CppSharp::CppParser::LinkerOptions::*_241)(const struct CppSharp::CppParser::LinkerOptions&) = &CppSharp::CppParser::LinkerOptions::operator=;
extern "C" __declspec(dllexport) void c__N_CppSharp_N_CppParser_S_CppLinkerOptions_CppLinkerOptions___1__N_CppSharp_N_CppParser_S_CppLinkerOptions(void* __instance, const CppSharp::CppParser::CppLinkerOptions& _0) { ::new (__instance) CppSharp::CppParser::CppLinkerOptions(_0); }
struct CppSharp::CppParser::CppLinkerOptions& (CppSharp::CppParser::CppLinkerOptions::*_241)(const struct CppSharp::CppParser::CppLinkerOptions&) = &CppSharp::CppParser::CppLinkerOptions::operator=;
struct CppSharp::CppParser::ParserDiagnostic& (CppSharp::CppParser::ParserDiagnostic::*_242)(const struct CppSharp::CppParser::ParserDiagnostic&) = &CppSharp::CppParser::ParserDiagnostic::operator=;
struct CppSharp::CppParser::ParserResult& (CppSharp::CppParser::ParserResult::*_243)(const struct CppSharp::CppParser::ParserResult&) = &CppSharp::CppParser::ParserResult::operator=;
class CppSharp::CppParser::ClangParser& (CppSharp::CppParser::ClangParser::*_244)(class CppSharp::CppParser::ClangParser&&) = &CppSharp::CppParser::ClangParser::operator=;

Просмотреть файл

@ -39534,10 +39534,11 @@ namespace CppSharp
public unsafe partial class CppParserOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 256)]
[StructLayout(LayoutKind.Sequential, Size = 280)]
public partial struct __Internal
{
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;
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_ CompilationOptions;
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;
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;
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;
@ -39575,6 +39576,15 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@CppParserOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getCompilationOptions@CppParserOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetCompilationOptions(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addCompilationOptions@CppParserOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddCompilationOptions(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearCompilationOptions@CppParserOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearCompilationOptions(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getSourceFiles@CppParserOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetSourceFiles(__IntPtr __instance, uint i);
@ -39635,6 +39645,9 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getCompilationOptionsCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetCompilationOptionsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getSourceFilesCount@CppParserOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetSourceFilesCount(__IntPtr __instance);
@ -39758,6 +39771,22 @@ namespace CppSharp
__Internal.ClearArguments(__Instance);
}
public string GetCompilationOptions(uint i)
{
var __ret = __Internal.GetCompilationOptions(__Instance, i);
return CppSharp.Runtime.MarshalUtil.GetString(global::System.Text.Encoding.UTF8, __ret);
}
public void AddCompilationOptions(string s)
{
__Internal.AddCompilationOptions(__Instance, s);
}
public void ClearCompilationOptions()
{
__Internal.ClearCompilationOptions(__Instance);
}
public string GetSourceFiles(uint i)
{
var __ret = __Internal.GetSourceFiles(__Instance, i);
@ -40021,6 +40050,15 @@ namespace CppSharp
}
}
public uint CompilationOptionsCount
{
get
{
var __ret = __Internal.GetCompilationOptionsCount(__Instance);
return __ret;
}
}
public uint SourceFilesCount
{
get
@ -40076,7 +40114,7 @@ namespace CppSharp
}
}
public unsafe partial class LinkerOptions : IDisposable
public unsafe partial class CppLinkerOptions : IDisposable
{
[StructLayout(LayoutKind.Sequential, Size = 72)]
public partial struct __Internal
@ -40085,112 +40123,112 @@ namespace CppSharp
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;
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", EntryPoint = "??0LinkerOptions@CppParser@CppSharp@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0CppLinkerOptions@CppParser@CppSharp@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ctor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0LinkerOptions@CppParser@CppSharp@@QEAA@AEBU012@@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??0CppLinkerOptions@CppParser@CppSharp@@QEAA@AEBU012@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr cctor(__IntPtr __instance, __IntPtr _0);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??1LinkerOptions@CppParser@CppSharp@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "??1CppLinkerOptions@CppParser@CppSharp@@QEAA@XZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void dtor(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArguments@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArguments@CppLinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetArguments(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addArguments@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addArguments@CppLinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddArguments(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@LinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearArguments@CppLinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearArguments(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraryDirs(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraryDirs(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraryDirs@LinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraryDirs@CppLinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraryDirs(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraries@LinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraries@CppLinkerOptions@CppParser@CppSharp@@QEAAPEBDI@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr GetLibraries(__IntPtr __instance, uint i);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraries@LinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?addLibraries@CppLinkerOptions@CppParser@CppSharp@@QEAAXPEBD@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void AddLibraries(__IntPtr __instance, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(CppSharp.Runtime.UTF8Marshaller))] string s);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraries@LinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?clearLibraries@CppLinkerOptions@CppParser@CppSharp@@QEAAXXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern void ClearLibraries(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getArgumentsCount@CppLinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetArgumentsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirsCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibraryDirsCount@CppLinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibraryDirsCount(__IntPtr __instance);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibrariesCount@LinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?getLibrariesCount@CppLinkerOptions@CppParser@CppSharp@@QEAAIXZ", CallingConvention = __CallingConvention.Cdecl)]
internal static extern uint GetLibrariesCount(__IntPtr __instance);
}
public __IntPtr __Instance { get; protected set; }
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.LinkerOptions>();
internal static readonly global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions> NativeToManagedMap = new global::System.Collections.Concurrent.ConcurrentDictionary<IntPtr, global::CppSharp.Parser.CppLinkerOptions>();
protected bool __ownsNativeInstance;
internal static LinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__IntPtr native, bool skipVTables = false)
{
return new LinkerOptions(native.ToPointer(), skipVTables);
return new CppLinkerOptions(native.ToPointer(), skipVTables);
}
internal static LinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
internal static CppLinkerOptions __GetOrCreateInstance(__IntPtr native, bool saveInstance = false, bool skipVTables = false)
{
if (native == __IntPtr.Zero)
return null;
if (NativeToManagedMap.TryGetValue(native, out var managed))
return (LinkerOptions)managed;
return (CppLinkerOptions)managed;
var result = __CreateInstance(native, skipVTables);
if (saveInstance)
NativeToManagedMap[native] = result;
return result;
}
internal static LinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
internal static CppLinkerOptions __CreateInstance(__Internal native, bool skipVTables = false)
{
return new LinkerOptions(native, skipVTables);
return new CppLinkerOptions(native, skipVTables);
}
private static void* __CopyValue(__Internal native)
{
var ret = Marshal.AllocHGlobal(sizeof(__Internal));
global::CppSharp.Parser.LinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
global::CppSharp.Parser.CppLinkerOptions.__Internal.cctor(ret, new __IntPtr(&native));
return ret.ToPointer();
}
private LinkerOptions(__Internal native, bool skipVTables = false)
private CppLinkerOptions(__Internal native, bool skipVTables = false)
: this(__CopyValue(native), skipVTables)
{
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
}
protected LinkerOptions(void* native, bool skipVTables = false)
protected CppLinkerOptions(void* native, bool skipVTables = false)
{
if (native == null)
return;
__Instance = new __IntPtr(native);
}
public LinkerOptions()
public CppLinkerOptions()
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
__Internal.ctor(__Instance);
}
public LinkerOptions(global::CppSharp.Parser.LinkerOptions _0)
public CppLinkerOptions(global::CppSharp.Parser.CppLinkerOptions _0)
{
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.LinkerOptions.__Internal));
__Instance = Marshal.AllocHGlobal(sizeof(global::CppSharp.Parser.CppLinkerOptions.__Internal));
__ownsNativeInstance = true;
NativeToManagedMap[__Instance] = this;
if (ReferenceEquals(_0, null))
@ -40704,8 +40742,17 @@ namespace CppSharp
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseHeader@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppParserOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseHeader(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAULinkerOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?ParseLibrary@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppLinkerOptions@23@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr ParseLibrary(__IntPtr Opts);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Build@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppParserOptions@23@PEBUCppLinkerOptions@23@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Build(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Compile@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppParserOptions@23@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Compile(__IntPtr Opts, __IntPtr File);
[SuppressUnmanagedCodeSecurity, DllImport("CppSharp.CppParser.dll", EntryPoint = "?Link@ClangParser@CppParser@CppSharp@@SAPEAUParserResult@23@PEAUCppParserOptions@23@PEBUCppLinkerOptions@23@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@_N@Z", CallingConvention = __CallingConvention.Cdecl)]
internal static extern __IntPtr Link(__IntPtr Opts, __IntPtr LinkerOptions, __IntPtr File, bool Last);
}
public __IntPtr __Instance { get; protected set; }
@ -40798,13 +40845,51 @@ namespace CppSharp
return __result0;
}
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.LinkerOptions Opts)
public static global::CppSharp.Parser.ParserResult ParseLibrary(global::CppSharp.Parser.CppLinkerOptions Opts)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __ret = __Internal.ParseLibrary(__arg0);
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Build(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Build(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Compile(global::CppSharp.Parser.CppParserOptions Opts, string File)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __basicString1 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString1, File);
var __arg1 = __basicString1.__Instance;
var __ret = __Internal.Compile(__arg0, __arg1);
__basicString1.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
public static global::CppSharp.Parser.ParserResult Link(global::CppSharp.Parser.CppParserOptions Opts, global::CppSharp.Parser.CppLinkerOptions LinkerOptions, string File, bool Last)
{
var __arg0 = Opts is null ? __IntPtr.Zero : Opts.__Instance;
var __arg1 = LinkerOptions is null ? __IntPtr.Zero : LinkerOptions.__Instance;
var __basicString2 = new global::Std.BasicString<sbyte, global::Std.CharTraits<sbyte>, global::Std.Allocator<sbyte>>();
global::Std.BasicStringExtensions.Assign(__basicString2, File);
var __arg2 = __basicString2.__Instance;
var __ret = __Internal.Link(__arg0, __arg1, __arg2, Last);
__basicString2.Dispose();
var __result0 = global::CppSharp.Parser.ParserResult.__GetOrCreateInstance(__ret, false);
return __result0;
}
}
}
}

Просмотреть файл

@ -7,6 +7,7 @@
#include "CppParser.h"
#include "Parser.h"
#include <llvm/Support/Host.h>
#include <clang/Basic/Version.inc>
namespace CppSharp { namespace CppParser {
@ -31,6 +32,7 @@ CppParserOptions::~CppParserOptions() {}
std::string CppParserOptions::getClangVersion() { return clangVersion; }
DEF_VECTOR_STRING(CppParserOptions, Arguments)
DEF_VECTOR_STRING(CppParserOptions, CompilationOptions)
DEF_VECTOR_STRING(CppParserOptions, SourceFiles)
DEF_VECTOR_STRING(CppParserOptions, IncludeDirs)
DEF_VECTOR_STRING(CppParserOptions, SystemIncludeDirs)
@ -61,12 +63,15 @@ ParserResult::~ParserResult()
DEF_VECTOR(ParserResult, ParserDiagnostic, Diagnostics)
DEF_VECTOR(ParserResult, NativeLibrary*, Libraries)
LinkerOptions::LinkerOptions() {}
LinkerOptions::~LinkerOptions() {}
CppLinkerOptions::CppLinkerOptions()
{
}
DEF_VECTOR_STRING(LinkerOptions, Arguments)
DEF_VECTOR_STRING(LinkerOptions, LibraryDirs)
DEF_VECTOR_STRING(LinkerOptions, Libraries)
CppLinkerOptions::~CppLinkerOptions() {}
DEF_VECTOR_STRING(CppLinkerOptions, Arguments)
DEF_VECTOR_STRING(CppLinkerOptions, LibraryDirs)
DEF_VECTOR_STRING(CppLinkerOptions, Libraries)
ParserDiagnostic::ParserDiagnostic() {}

Просмотреть файл

@ -26,6 +26,7 @@ struct CS_API CppParserOptions
std::string getClangVersion();
VECTOR_STRING(Arguments)
VECTOR_STRING(CompilationOptions)
// C/C++ header file names.
VECTOR_STRING(SourceFiles)
@ -54,10 +55,10 @@ private:
std::string clangVersion;
};
struct CS_API LinkerOptions
struct CS_API CppLinkerOptions
{
LinkerOptions();
~LinkerOptions();
CppLinkerOptions();
~CppLinkerOptions();
VECTOR_STRING(Arguments)
VECTOR_STRING(LibraryDirs)
@ -120,7 +121,12 @@ class CS_API ClangParser
public:
static ParserResult* ParseHeader(CppParserOptions* Opts);
static ParserResult* ParseLibrary(LinkerOptions* Opts);
static ParserResult* ParseLibrary(CppLinkerOptions* Opts);
static ParserResult* Build(CppParserOptions* Opts,
const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last);
static ParserResult* Compile(CppParserOptions* Opts, const std::string& File);
static ParserResult* Link(CppParserOptions* Opts,
const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last);
};
} }

187
src/CppParser/Link.cpp Normal file
Просмотреть файл

@ -0,0 +1,187 @@
/************************************************************************
*
* CppSharp
* Licensed under the simplified BSD license. All rights reserved.
*
************************************************************************/
#include "CppParser.h"
#include "Parser.h"
#include <Driver/ToolChains/MSVC.h>
#include <Driver/ToolChains/Linux.h>
#include <lld/Common/Driver.h>
using namespace CppSharp::CppParser;
void Parser::Link(const std::string& File, const CppLinkerOptions* LinkerOptions)
{
std::vector<const char*> args;
llvm::StringRef Dir(llvm::sys::path::parent_path(File));
llvm::StringRef Stem = llvm::sys::path::stem(File);
const llvm::Triple Triple = c->getTarget().getTriple();
switch (Triple.getOS())
{
case llvm::Triple::OSType::Win32:
args.push_back("-subsystem:windows");
switch (Triple.getEnvironment())
{
case llvm::Triple::EnvironmentType::MSVC:
LinkWindows(LinkerOptions, args, Dir, Stem);
break;
case llvm::Triple::EnvironmentType::GNU:
LinkWindows(LinkerOptions, args, Dir, Stem, true);
break;
default:
throw std::invalid_argument("Target triple environment");
}
break;
case llvm::Triple::OSType::Linux:
LinkELF(LinkerOptions, args, Dir, Stem);
break;
case llvm::Triple::OSType::Darwin:
case llvm::Triple::OSType::MacOSX:
LinkMachO(LinkerOptions, args, Dir, Stem);
break;
default:
throw std::invalid_argument("Target triple operating system");
}
}
void Parser::LinkWindows(const CppLinkerOptions* LinkerOptions,
std::vector<const char*>& args,
const llvm::StringRef& Dir, llvm::StringRef& Stem, bool MinGW)
{
#ifdef _WIN32
using namespace llvm;
using namespace clang;
if (MinGW)
{
args.push_back("-lldmingw");
}
const Triple& Triple = c->getTarget().getTriple();
driver::Driver D("", Triple.str(), c->getDiagnostics());
opt::InputArgList Args(0, 0);
driver::toolchains::MSVCToolChain TC(D, Triple, Args);
std::vector<std::string> LibraryPaths;
LibraryPaths.push_back("-libpath:" + TC.getSubDirectoryPath(
clang::driver::toolchains::MSVCToolChain::SubDirectoryType::Lib));
std::string CRTPath;
if (TC.getUniversalCRTLibraryPath(Args, CRTPath))
LibraryPaths.push_back("-libpath:" + CRTPath);
std::string WinSDKPath;
if (TC.getWindowsSDKLibraryPath(Args, WinSDKPath))
LibraryPaths.push_back("-libpath:" + WinSDKPath);
for (const auto& LibraryDir : LinkerOptions->LibraryDirs)
LibraryPaths.push_back("-libpath:" + LibraryDir);
for (const auto& LibraryPath : LibraryPaths)
args.push_back(LibraryPath.data());
for (const std::string& Arg : LinkerOptions->Arguments)
{
args.push_back(Arg.data());
}
std::string LibExtension(MinGW ? "" : ".lib");
std::vector<std::string> Libraries;
for (const auto& Library : LinkerOptions->Libraries)
Libraries.push_back(Library + LibExtension);
for (const auto& Library : Libraries)
args.push_back(Library.data());
args.push_back(c->getFrontendOpts().OutputFile.data());
SmallString<1024> Output(Dir);
sys::path::append(Output, Stem + ".dll");
std::string Out("-out:" + std::string(Output));
args.push_back(Out.data());
lld::coff::link(args, false, outs(), errs());
#endif
}
void Parser::LinkELF(const CppLinkerOptions* LinkerOptions,
std::vector<const char*>& args,
llvm::StringRef& Dir, llvm::StringRef& Stem)
{
#ifdef __linux__
using namespace llvm;
args.push_back("-flavor gnu");
for (const std::string& Arg : LinkerOptions->Arguments)
{
args.push_back(Arg.data());
}
std::string LinkingDir("-L" + Dir.str());
args.push_back(LinkingDir.data());
std::vector<std::string> LibraryDirs;
for (const auto& LibraryDir : LinkerOptions->LibraryDirs)
LibraryDirs.push_back("-L" + LibraryDir);
for (const auto& LibraryDir : LibraryDirs)
args.push_back(LibraryDir.data());
std::vector<std::string> Libraries;
for (const auto& Library : LinkerOptions->Libraries)
Libraries.push_back("-l" + Library);
for (const auto& Library : Libraries)
args.push_back(Library.data());
args.push_back(c->getFrontendOpts().OutputFile.data());
args.push_back("-o");
SmallString<1024> Output(Dir);
sys::path::append(Output, "lib" + Stem + ".so");
std::string Out(Output);
args.push_back(Out.data());
lld::elf::link(args, false, outs(), errs());
#endif
}
void Parser::LinkMachO(const CppLinkerOptions* LinkerOptions,
std::vector<const char*>& args,
llvm::StringRef& Dir, llvm::StringRef& Stem)
{
#ifdef __APPLE__
using namespace llvm;
args.push_back("-flavor darwinnew");
for (const std::string& Arg : LinkerOptions->Arguments)
{
args.push_back(Arg.data());
}
std::string LinkingDir("-L" + Dir.str());
args.push_back(LinkingDir.data());
std::vector<std::string> LibraryDirs;
for (const auto& LibraryDir : LinkerOptions->LibraryDirs)
LibraryDirs.push_back("-L" + LibraryDir);
for (const auto& LibraryDir : LibraryDirs)
args.push_back(LibraryDir.data());
std::vector<std::string> Libraries;
for (const auto& Library : LinkerOptions->Libraries)
Libraries.push_back("-l" + Library);
for (const auto& Library : Libraries)
args.push_back(Library.data());
args.push_back(c->getFrontendOpts().OutputFile.data());
args.push_back("-o");
SmallString<1024> Output(Dir);
sys::path::append(Output, "lib" + Stem + ".dylib");
std::string Out(Output);
args.push_back(Out.data());
lld::mach_o::link(args, false, outs(), errs());
#endif
}

Просмотреть файл

@ -33,6 +33,7 @@
#include <clang/AST/Comment.h>
#include <clang/AST/DeclFriend.h>
#include <clang/AST/ExprCXX.h>
#include <clang/CodeGen/CodeGenAction.h>
#include <clang/Lex/DirectoryLookup.h>
#include <clang/Lex/HeaderSearch.h>
#include <clang/Lex/Preprocessor.h>
@ -235,7 +236,7 @@ ConvertToClangTargetCXXABI(CppSharp::CppParser::AST::CppAbi abi)
llvm_unreachable("Unsupported C++ ABI.");
}
void Parser::Setup()
void Parser::Setup(bool Compile)
{
llvm::InitializeAllTargets();
llvm::InitializeAllTargetMCs();
@ -245,6 +246,16 @@ void Parser::Setup()
std::vector<const char*> args;
args.push_back("-cc1");
if (Compile)
{
for (const std::string& CompilationOption : opts->CompilationOptions)
{
args.push_back(CompilationOption.c_str());
if (opts->verbose)
printf("Compiler argument: %s\n", CompilationOption.c_str());
}
}
for (unsigned I = 0, E = opts->Arguments.size(); I != E; ++I)
{
@ -4577,7 +4588,7 @@ ParserResultKind Parser::ReadSymbols(llvm::StringRef File,
return ParserResultKind::Success;
}
ParserResult* Parser::ParseLibrary(const LinkerOptions* Opts)
ParserResult* Parser::ParseLibrary(const CppLinkerOptions* Opts)
{
auto res = new ParserResult();
@ -4651,6 +4662,22 @@ ParserResult* Parser::ParseLibrary(const LinkerOptions* Opts)
return res;
}
ParserResult* Parser::Build(const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last)
{
ParserResult* error = Compile(File);
if (error)
return error;
Link(File, LinkerOptions);
if (Last)
llvm::llvm_shutdown();
auto res = new ParserResult();
HandleDiagnostics(res);
return res;
}
ParserResult* ClangParser::ParseHeader(CppParserOptions* Opts)
{
if (!Opts)
@ -4682,7 +4709,7 @@ ParserResult* ClangParser::ParseHeader(CppParserOptions* Opts)
return res;
}
ParserResult* ClangParser::ParseLibrary(LinkerOptions* Opts)
ParserResult* ClangParser::ParseLibrary(CppLinkerOptions* Opts)
{
if (!Opts)
return nullptr;
@ -4690,6 +4717,68 @@ ParserResult* ClangParser::ParseLibrary(LinkerOptions* Opts)
return Parser::ParseLibrary(Opts);
}
ParserResult* ClangParser::Build(CppParserOptions* Opts,
const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last)
{
if (!Opts)
return 0;
Parser Parser(Opts);
return Parser.Build(LinkerOptions, File, Last);
}
ParserResult* ClangParser::Compile(CppParserOptions* Opts,
const std::string& File)
{
if (!Opts)
return 0;
Parser Parser(Opts);
return Parser.Compile(File);
}
ParserResult* ClangParser::Link(CppParserOptions* Opts,
const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last)
{
if (!Opts)
return 0;
Parser Parser(Opts);
Parser.Link(File, LinkerOptions);
if (Last)
llvm::llvm_shutdown();
}
ParserResult* Parser::Compile(const std::string& File)
{
llvm::InitializeAllAsmPrinters();
llvm::StringRef Stem = llvm::sys::path::stem(File);
Setup(/* Compile */ true);
c->getDiagnostics().setClient(new ::DiagnosticConsumer());
c->getFrontendOpts().Inputs.clear();
c->getFrontendOpts().Inputs.push_back(clang::FrontendInputFile(File, clang::Language::CXX));
const llvm::Triple Triple = c->getTarget().getTriple();
llvm::StringRef Dir(llvm::sys::path::parent_path(File));
llvm::SmallString<1024> Object(Dir);
llvm::sys::path::append(Object,
(Triple.isOSWindows() ? "" : "lib") + Stem + ".o");
c->getFrontendOpts().OutputFile = std::string(Object);
llvm::LLVMContext context;
auto action = std::make_unique<clang::EmitObjAction>(&context);
if (!c->ExecuteAction(*action))
{
auto res = new ParserResult();
HandleDiagnostics(res);
return res;
}
return 0;
}
ParserTargetInfo* Parser::GetTargetInfo()
{
auto parserTargetInfo = new ParserTargetInfo();

Просмотреть файл

@ -53,10 +53,12 @@ class Parser
public:
Parser(CppParserOptions* Opts);
void Setup();
void Setup(bool Compile = false);
ParserResult* Parse(const std::vector<std::string>& SourceFiles);
static ParserResult* ParseLibrary(const LinkerOptions* Opts);
static ParserResult* ParseLibrary(const CppLinkerOptions* Opts);
ParserResult* Build(const CppLinkerOptions* LinkerOptions, const std::string& File, bool Last);
ParserResult* Compile(const std::string& File);
void Link(const std::string& File, const CppLinkerOptions* LinkerOptions);
void WalkAST(clang::TranslationUnitDecl* TU);
void HandleDeclaration(const clang::Decl* D, Declaration* Decl);
CppParserOptions* opts;
@ -169,6 +171,13 @@ private:
llvm::object::ObjectFile* ObjectFile, std::vector<CppSharp::CppParser::NativeLibrary*>& NativeLibs);
ParserTargetInfo* GetTargetInfo();
void LinkWindows(const CppLinkerOptions* LinkerOptions, std::vector<const char*>& args,
const llvm::StringRef& Dir, llvm::StringRef& Stem, bool MinGW = false);
void LinkELF(const CppLinkerOptions* LinkerOptions, std::vector<const char*>& args,
llvm::StringRef& Dir, llvm::StringRef& Stem);
void LinkMachO(const CppLinkerOptions* LinkerOptions, std::vector<const char*>& args,
llvm::StringRef& Dir, llvm::StringRef& Stem);
int index;
std::unique_ptr<clang::CompilerInstance> c;
llvm::LLVMContext LLVMCtx;

Просмотреть файл

@ -2,7 +2,6 @@ using System;
using System.Linq;
using CppSharp.AST;
using CppSharp.AST.Extensions;
using CppSharp.Generators;
using CppSharp.Generators.C;
using CppSharp.Generators.CSharp;
using CppSharp.Passes;
@ -13,26 +12,8 @@ namespace CppSharp.Generator.Tests.AST
[TestFixture]
public class TestAST : ASTTestFixture
{
private BindingContext Context;
[OneTimeSetUp]
public void Init()
public TestAST() : base("AST.h", "ASTExtensions.h")
{
Context = new BindingContext(new DriverOptions());
Context.TypeMaps = new Types.TypeMapDatabase(Context);
CppSharp.AST.Type.TypePrinterDelegate = type =>
{
PrimitiveType primitiveType;
return type.IsPrimitiveType(out primitiveType) ? primitiveType.ToString() : string.Empty;
};
ParseLibrary("AST.h", "ASTExtensions.h");
}
[OneTimeTearDown]
public void CleanUp()
{
Driver.Dispose();
}
[Test]

Просмотреть файл

@ -4,6 +4,8 @@ using CppSharp.Utils;
using CppSharp.Parser;
using CppSharp.Passes;
using CppSharp.Generators;
using NUnit.Framework;
using CppSharp.AST.Extensions;
namespace CppSharp.Generator.Tests
{
@ -11,22 +13,44 @@ namespace CppSharp.Generator.Tests
{
protected Driver Driver;
protected ASTContext AstContext;
protected BindingContext Context;
public ASTTestFixture(params string[] files)
{
this.files = files;
}
[OneTimeSetUp]
public void Init()
{
ParseLibrary(files);
}
[OneTimeTearDown]
public void CleanUp()
{
if (files.Length > 0)
{
Driver.Dispose();
}
}
protected void ParseLibrary(params string[] files)
{
var options = new DriverOptions { GeneratorKind = GeneratorKind.CSharp };
var parserOptions = new ParserOptions();
if (files.Length == 0)
{
return;
}
var testsPath = GeneratorTest.GetTestsDirectory("Native");
parserOptions.SkipPrivateDeclarations = true;
var options = new DriverOptions { GeneratorKind = GeneratorKind.CSharp };
var module = options.AddModule("Test");
module.IncludeDirs.Add(testsPath);
module.IncludeDirs.Add(GeneratorTest.GetTestsDirectory("Native"));
module.Headers.AddRange(files);
Driver = new Driver(options)
{
ParserOptions = parserOptions
ParserOptions = new ParserOptions { SkipPrivateDeclarations = true }
};
Driver.Setup();
@ -37,6 +61,17 @@ namespace CppSharp.Generator.Tests
AstContext = Driver.Context.ASTContext;
new CleanUnitPass { Context = Driver.Context }.VisitASTContext(AstContext);
new ResolveIncompleteDeclsPass { Context = Driver.Context }.VisitASTContext(AstContext);
Context = new BindingContext(options, Driver.ParserOptions);
Context.TypeMaps = new Types.TypeMapDatabase(Context);
CppSharp.AST.Type.TypePrinterDelegate = type =>
{
PrimitiveType primitiveType;
return type.IsPrimitiveType(out primitiveType) ? primitiveType.ToString() : string.Empty;
};
}
private readonly string[] files;
}
}

Просмотреть файл

@ -27,8 +27,8 @@ namespace CppSharp.Utils
options.OutputDir = Path.Combine(GetOutputDirectory(), "build", "gen", name);
options.Quiet = true;
options.GenerateDebugOutput = true;
options.CheckSymbols = true;
var testModule = options.AddModule(name);
testModule.SharedLibraryName = $"{name}.Native";
Diagnostics.Message("");
Diagnostics.Message("Generating bindings for {0} ({1})",
@ -40,6 +40,8 @@ namespace CppSharp.Utils
var path = Path.GetFullPath(GetTestsDirectory(name));
testModule.IncludeDirs.Add(path);
testModule.LibraryDirs.Add(options.OutputDir);
testModule.Libraries.Add($"{name}.Native");
Diagnostics.Message("Looking for tests in: {0}", path);
var files = Directory.EnumerateFiles(path, "*.h", SearchOption.AllDirectories);

Просмотреть файл

@ -4,19 +4,13 @@ using CppSharp.Generators.CSharp;
using CppSharp.Passes;
using NUnit.Framework;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text.RegularExpressions;
namespace CppSharp.Generator.Tests.Passes
{
[TestFixture]
public class TestPasses : ASTTestFixture
{
private PassBuilder<TranslationUnitPass> passBuilder;
[SetUp]
public void Setup()
{
@ -24,6 +18,12 @@ namespace CppSharp.Generator.Tests.Passes
passBuilder = new PassBuilder<TranslationUnitPass>(Driver.Context);
}
[TearDown]
public void TearDown()
{
Driver.Dispose();
}
[Test]
public void TestExtractInterfacePass()
{
@ -451,5 +451,7 @@ namespace CppSharp.Generator.Tests.Passes
Assert.IsNotNull(@protected);
Assert.AreEqual(AccessSpecifier.Protected, @protected.Access);
}
private PassBuilder<TranslationUnitPass> passBuilder;
}
}

Просмотреть файл

@ -9,6 +9,7 @@ namespace CppSharp.Generators
{
public DriverOptions Options { get; }
public ParserOptions ParserOptions { get; set; }
public LinkerOptions LinkerOptions { get; set; }
public ASTContext ASTContext { get; set; }
public ParserTargetInfo TargetInfo { get; set; }
@ -25,6 +26,7 @@ namespace CppSharp.Generators
{
Options = options;
ParserOptions = parserOptions;
LinkerOptions = new LinkerOptions();
Symbols = new SymbolContext();

Просмотреть файл

@ -84,6 +84,7 @@ namespace CppSharp
ValidateOptions();
ParserOptions.Setup();
Context = new BindingContext(Options, ParserOptions);
Context.LinkerOptions.Setup(ParserOptions.TargetTriple, ParserOptions.LanguageVersion);
Generator = CreateGeneratorFromKind(Options.GeneratorKind);
}
@ -179,7 +180,7 @@ namespace CppSharp
ClangParser.LibraryParsed += OnFileParsed;
foreach (var module in Options.Modules)
{
using (var linkerOptions = new LinkerOptions())
using (var linkerOptions = new LinkerOptions(Context.LinkerOptions))
{
foreach (var libraryDir in module.LibraryDirs)
linkerOptions.AddLibraryDirs(libraryDir);
@ -399,6 +400,7 @@ namespace CppSharp
Generator?.Dispose();
Context?.TargetInfo?.Dispose();
ParserOptions.Dispose();
Context?.LinkerOptions.Dispose();
}
private bool hasParsingErrors;

Просмотреть файл

@ -42,11 +42,44 @@ namespace CppSharp.Passes
var e = new SymbolsCodeEventArgs(module);
SymbolsCodeGenerated?.Invoke(this, e);
if (string.IsNullOrEmpty(e.CustomCompiler))
RemainingCompilationTasks--;
else
if (!string.IsNullOrEmpty(e.CustomCompiler))
{
InvokeCompiler(e.CustomCompiler, e.CompilerArguments,
e.OutputDir, module);
continue;
}
if (Options.CheckSymbols && (module == Options.SystemModule ||
// if the user's provided no libraries, he only wants to generate code
(module.LibraryDirs.Count > 0 && module.Libraries.Count > 0)))
{
using (var linkerOptions = new LinkerOptions(Context.LinkerOptions))
{
foreach (var libraryDir in module.Dependencies.Union(
new[] { module }).SelectMany(d => d.LibraryDirs))
linkerOptions.AddLibraryDirs(libraryDir);
foreach (var library in module.Dependencies.Union(
new[] { module }).SelectMany(d => d.Libraries))
linkerOptions.AddLibraries(library);
using (var result = Parser.ClangParser.Build(
Context.ParserOptions, linkerOptions, path,
Last: remainingCompilationTasks == 1))
{
if (PrintDiagnostics(result))
{
compiledLibraries[module] = new CompiledLibrary
{
OutputDir = Options.OutputDir,
Library = module.SymbolsLibraryName
};
}
}
}
}
RemainingCompilationTasks--;
}
}
@ -146,6 +179,42 @@ namespace CppSharp.Passes
return symbolsCodeGenerator;
}
private static bool PrintDiagnostics(ParserResult result)
{
bool success = true;
for (uint i = 0; i < result.DiagnosticsCount; i++)
{
var diag = result.GetDiagnostics(i);
switch (diag.Level)
{
case ParserDiagnosticLevel.Ignored:
case ParserDiagnosticLevel.Note:
Diagnostics.Message("{0}({1},{2}): {3}: {4}",
diag.FileName, diag.LineNumber, diag.ColumnNumber,
diag.Level.ToString().ToLower(), diag.Message);
break;
case ParserDiagnosticLevel.Warning:
Diagnostics.Warning("{0}({1},{2}): {3}: {4}",
diag.FileName, diag.LineNumber, diag.ColumnNumber,
diag.Level.ToString().ToLower(), diag.Message);
break;
case ParserDiagnosticLevel.Error:
Diagnostics.Error("{0}({1},{2}): {3}: {4}",
diag.FileName, diag.LineNumber, diag.ColumnNumber,
diag.Level.ToString().ToLower(), diag.Message);
success = false;
break;
case ParserDiagnosticLevel.Fatal:
Diagnostics.Debug("{0}({1},{2}): {3}: {4}",
diag.FileName, diag.LineNumber, diag.ColumnNumber,
diag.Level.ToString().ToLower(), diag.Message);
success = false;
break;
}
}
return success;
}
private void InvokeCompiler(string compiler, string arguments, string outputDir, Module module)
{
new Thread(() =>
@ -215,7 +284,7 @@ namespace CppSharp.Passes
private void CollectSymbols(string outputDir, string library)
{
using (var linkerOptions = new LinkerOptions())
using (var linkerOptions = new LinkerOptions(Context.LinkerOptions))
{
linkerOptions.AddLibraryDirs(outputDir);
var output = GetOutputFile(library);

Просмотреть файл

@ -110,7 +110,9 @@ namespace CppSharp.Passes
private string GetExporting()
{
return Context.ParserOptions.IsMicrosoftAbi ?
return Context.ParserOptions.IsMicrosoftAbi ||
(Context.ParserOptions.TargetTriple.IsWindows() &&
TranslationUnit.Module == Options.SystemModule) ?
"__declspec(dllexport) " : string.Empty;
}

Просмотреть файл

@ -0,0 +1,70 @@
using System.Linq;
namespace CppSharp.Parser
{
public class LinkerOptions : CppLinkerOptions
{
public LinkerOptions()
{
}
public LinkerOptions(LinkerOptions other)
{
for (uint i = 0; i < other.ArgumentsCount; i++)
{
AddArguments(other.GetArguments(i));
}
for (uint i = 0; i < other.LibraryDirsCount; i++)
{
AddLibraryDirs(other.GetLibraryDirs(i));
}
for (uint i = 0; i < other.LibrariesCount; i++)
{
AddLibraries(other.GetLibraries(i));
}
}
public string SystemLibraryPath { get; set; }
public System.Version MacOSSDKVersion { get; set; } = new System.Version("10.12.0");
public void Setup(string triple, LanguageVersion? languageVersion)
{
switch (Platform.Host)
{
case TargetPlatform.Windows:
AddArguments("-dll");
AddArguments("libcmt.lib");
string[] parts = triple.Split('-');
if (parts.Any(p => p.StartsWith("mingw") || p.StartsWith("gnu")))
{
AddArguments("libstdc++-6.dll");
}
break;
case TargetPlatform.Linux:
case TargetPlatform.Android:
AddArguments(SystemLibraryPath ?? "-L/usr/lib/x86_64-linux-gnu");
AddArguments("-lc");
AddArguments("--shared");
AddArguments("-rpath");
AddArguments(".");
break;
case TargetPlatform.MacOS:
case TargetPlatform.iOS:
case TargetPlatform.WatchOS:
case TargetPlatform.TVOS:
if (languageVersion > LanguageVersion.C99_GNU)
{
AddArguments("-lc++");
}
AddArguments("-lSystem");
AddArguments("-dylib");
AddArguments("-sdk_version");
AddArguments(MacOSSDKVersion.ToString());
AddArguments(SystemLibraryPath ?? "-L/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/lib");
AddArguments("-rpath");
AddArguments(".");
break;
}
}
}
}

Просмотреть файл

@ -65,7 +65,13 @@ namespace CppSharp.Parser
public class ParserOptions : CppParserOptions
{
public ParserOptions() => MicrosoftMode = !Platform.IsUnixPlatform;
public ParserOptions()
{
MicrosoftMode = !Platform.IsUnixPlatform;
AddCompilationOptions("-flto");
AddCompilationOptions("-O3");
AddCompilationOptions("-fno-use-cxa-atexit");
}
public bool IsItaniumLikeAbi => !IsMicrosoftAbi;
public bool IsMicrosoftAbi => TargetTriple.Contains("win32") ||
@ -349,7 +355,7 @@ namespace CppSharp.Parser
AddArguments("-fno-rtti");
}
public string BuiltinsDir
public string BuiltinsDir
{
get
{

Просмотреть файл

@ -33,10 +33,6 @@ Foo::Foo(const Foo& other) : A(other.A), P(other.P),
{
}
Foo::~Foo()
{
}
int Foo::method()
{
return 1;
@ -178,11 +174,6 @@ void Quux::setSetterWithDefaultOverload(Foo* value)
_setterWithDefaultOverload = value;
}
QColor::QColor()
{
}
QColor::QColor(Qt::GlobalColor color)
{
@ -241,6 +232,10 @@ int Qux::type() const
return 0;
}
Bar::Bar() : index(0)
{
}
Bar::Bar(Qux qux)
{
}
@ -249,10 +244,6 @@ Bar::Bar(Items item)
{
}
Bar::~Bar()
{
}
int Bar::method()
{
return 2;
@ -302,21 +293,9 @@ int Bar::type() const
return 1;
}
ForceCreationOfInterface::ForceCreationOfInterface()
{
}
Baz::Baz() : P(5), functionTypedef(0) {}
ForceCreationOfInterface::~ForceCreationOfInterface()
{
}
Baz::Baz() : P(5) {}
Baz::Baz(Bar::Items item)
{
}
Baz::~Baz()
Baz::Baz(Bar::Items item) : Baz()
{
}
@ -363,17 +342,18 @@ int AbstractProprietor::parent() const
return 0;
}
AbstractProprietor::AbstractProprietor()
AbstractProprietor::AbstractProprietor() : m_value(0), m_property(0)
{
}
AbstractProprietor::AbstractProprietor(int i)
AbstractProprietor::AbstractProprietor(int i) : AbstractProprietor()
{
}
Proprietor::Proprietor() : _items(Bar::Items::Item1), _itemsByValue(Bar::Items::Item1) {}
Proprietor::Proprietor(int i) : AbstractProprietor(i)
Proprietor::Proprietor(int i) : AbstractProprietor(i),
_items(Bar::Items::Item1), _itemsByValue(Bar::Items::Item1)
{
}
@ -510,7 +490,7 @@ TestDestructors::~TestDestructors() { Marker = 0xcafe; }
int TestDestructors::Marker = 0;
TestCopyConstructorVal::TestCopyConstructorVal()
TestCopyConstructorVal::TestCopyConstructorVal() : A(0), B(0)
{
}
@ -520,14 +500,6 @@ TestCopyConstructorVal::TestCopyConstructorVal(const TestCopyConstructorVal& oth
B = other.B;
}
TestRenaming::TestRenaming()
{
}
TestRenaming::~TestRenaming()
{
}
void TestRenaming::name()
{
}
@ -541,18 +513,10 @@ int TestRenaming::property()
return 1;
}
UsesPointerToEnum::UsesPointerToEnum()
{
}
void UsesPointerToEnum::hasPointerToEnumInParam(Flags* flag)
{
}
UsesPointerToEnumInParamOfVirtual::UsesPointerToEnumInParamOfVirtual()
{
}
UsesPointerToEnumInParamOfVirtual::~UsesPointerToEnumInParamOfVirtual()
{
}
@ -578,7 +542,8 @@ UntypedFlags operator|(UntypedFlags lhs, UntypedFlags rhs)
return static_cast<UntypedFlags>(static_cast<int>(lhs) | static_cast<int>(rhs));
}
QGenericArgument::QGenericArgument(const char *name, const void* data)
QGenericArgument::QGenericArgument(const char* name, const void* data) :
fixedArrayInValueType { 0 }
{
_name = name;
}
@ -844,10 +809,6 @@ int MethodsWithDefaultValues::getA()
return m_foo.A;
}
HasOverridesWithChangedAccessBase::HasOverridesWithChangedAccessBase()
{
}
void HasOverridesWithChangedAccessBase::privateOverride(int i)
{
}
@ -860,10 +821,6 @@ void HasOverridesWithChangedAccessBase::differentIncreasedAccessOverride()
{
}
HasOverridesWithChangedAccess::HasOverridesWithChangedAccess()
{
}
void HasOverridesWithChangedAccess::privateOverride(int i)
{
}
@ -872,18 +829,10 @@ void HasOverridesWithChangedAccess::publicOverride()
{
}
HasOverridesWithIncreasedProtectedAccess::HasOverridesWithIncreasedProtectedAccess()
{
}
void HasOverridesWithIncreasedProtectedAccess::differentIncreasedAccessOverride()
{
}
HasOverridesWithIncreasedAccess::HasOverridesWithIncreasedAccess()
{
}
void HasOverridesWithIncreasedAccess::privateOverride(int i)
{
}
@ -896,14 +845,6 @@ AbstractWithProperty::~AbstractWithProperty()
{
}
HasOverriddenInManaged::HasOverriddenInManaged()
{
}
HasOverriddenInManaged::~HasOverriddenInManaged()
{
}
void HasOverriddenInManaged::setOverriddenInManaged(Baz* value)
{
overriddenInManaged = value;
@ -1015,10 +956,6 @@ void TestNativeToManagedMap::setPropertyWithNoVirtualDtor(Bar* bar)
this->bar = bar;
}
CallDtorVirtually::CallDtorVirtually()
{
}
CallDtorVirtually::~CallDtorVirtually()
{
Destroyed = true;
@ -1037,14 +974,6 @@ CallDtorVirtually* CallDtorVirtually::getNonOwnedInstance()
return &nonOwnedInstance;
}
TestOverrideFromSecondaryBase::TestOverrideFromSecondaryBase()
{
}
TestOverrideFromSecondaryBase::~TestOverrideFromSecondaryBase()
{
}
void TestOverrideFromSecondaryBase::VirtualMember()
{
}
@ -1099,30 +1028,10 @@ TestParamToInterfacePass::TestParamToInterfacePass() : TestParamToInterfacePassB
{
}
HasProtectedVirtual::HasProtectedVirtual()
{
}
void HasProtectedVirtual::protectedVirtual()
{
}
InheritanceBuffer::InheritanceBuffer()
{
}
InheritanceBuffer::~InheritanceBuffer()
{
}
InheritsProtectedVirtualFromSecondaryBase::InheritsProtectedVirtualFromSecondaryBase()
{
}
InheritsProtectedVirtualFromSecondaryBase::~InheritsProtectedVirtualFromSecondaryBase()
{
}
void InheritsProtectedVirtualFromSecondaryBase::protectedVirtual()
{
}
@ -1131,27 +1040,15 @@ void freeFunctionWithUnsupportedDefaultArg(Foo foo)
{
}
TypeMappedWithOperator::TypeMappedWithOperator()
{
}
int TypeMappedWithOperator::operator |(int i)
{
return 0;
}
HasPropertyWithDerivedType::HasPropertyWithDerivedType()
{
}
void HasPropertyWithDerivedType::causeRenamingError()
{
}
HasOverrideOfHasPropertyWithDerivedType::HasOverrideOfHasPropertyWithDerivedType()
{
}
void HasOverrideOfHasPropertyWithDerivedType::causeRenamingError()
{
}
@ -1185,32 +1082,16 @@ void MultiOverloadPtrToRef::TakePrimTypePtr(int* ptr)
ptr[2] = 300;
}
OverrideFromIndirectSecondaryBaseBase::OverrideFromIndirectSecondaryBaseBase()
{
}
int OverrideFromIndirectSecondaryBaseBase::property()
{
return 0;
}
OverrideFromDirectSecondaryBase::OverrideFromDirectSecondaryBase()
{
}
OverrideFromIndirectSecondaryBase::OverrideFromIndirectSecondaryBase()
{
}
int OverrideFromIndirectSecondaryBase::property()
{
return 1;
}
TestOutTypeInterfaces::TestOutTypeInterfaces()
{
}
void TestOutTypeInterfaces::funcTryInterfaceTypePtrOut(CS_OUT TestParamToInterfacePassBaseTwo* classTry)
{
}
@ -1219,61 +1100,33 @@ void TestOutTypeInterfaces::funcTryInterfaceTypeOut(CS_OUT TestParamToInterfaceP
{
}
DerivesFromTemplateInstantiation::DerivesFromTemplateInstantiation()
{
}
int PassConstantArrayRef(int(&arr)[2])
{
return arr[0];
}
TestComparison::TestComparison()
{
}
bool TestComparison::operator ==(const TestComparison& other) const
{
return A == other.A && B == other.B;
}
OverridePropertyFromIndirectPrimaryBaseBase::OverridePropertyFromIndirectPrimaryBaseBase()
{
}
OverridePropertyFromIndirectPrimaryBaseBase::~OverridePropertyFromIndirectPrimaryBaseBase()
{
}
OverridePropertyFromDirectPrimaryBase::OverridePropertyFromDirectPrimaryBase()
{
}
void OverridePropertyFromDirectPrimaryBase::setProperty(int value)
{
}
OverridePropertyFromIndirectPrimaryBase::OverridePropertyFromIndirectPrimaryBase()
{
}
int OverridePropertyFromIndirectPrimaryBase::property()
{
return 5;
}
AbstractOverrideFromSecondaryBase::AbstractOverrideFromSecondaryBase()
{
}
AbstractOverrideFromSecondaryBase::~AbstractOverrideFromSecondaryBase()
{
}
QObject::QObject()
{
}
QObject::~QObject()
{
}
@ -1286,10 +1139,6 @@ QPaintDevice::QPaintDevice() : test(0)
{
}
QPaintDevice::~QPaintDevice()
{
}
void QPaintDevice::changeVTableLayout()
{
}
@ -1299,10 +1148,6 @@ QWidget::QWidget()
QApplication::instance->notify(this);
}
QWidget::~QWidget()
{
}
void QWidget::event()
{
QApplication::instance->notify(&child);
@ -1313,10 +1158,6 @@ QPainter::QPainter(QPaintDevice& paintDevice)
paintDevice.test = 5;
}
QPainter::~QPainter()
{
}
QApplication::QApplication()
{
instance = this;
@ -1338,10 +1179,6 @@ char* HasSamePropertyInDerivedAbstractType::property()
return 0;
}
InheritsFromHasSamePropertyInDerivedAbstractType::InheritsFromHasSamePropertyInDerivedAbstractType()
{
}
InheritsFromHasSamePropertyInDerivedAbstractType::~InheritsFromHasSamePropertyInDerivedAbstractType()
{
}
@ -1358,10 +1195,6 @@ MultipleInheritanceFieldOffsets::MultipleInheritanceFieldOffsets() : own(3)
{
}
VirtualDtorAddedInDerived::VirtualDtorAddedInDerived()
{
}
VirtualDtorAddedInDerived::~VirtualDtorAddedInDerived()
{
dtorCalled = true;
@ -1423,14 +1256,6 @@ int HasConflictWithAbstractProperty::conflictWithProperty()
return 0;
}
HasVirtualTakesReturnsProblematicTypes::HasVirtualTakesReturnsProblematicTypes()
{
}
HasVirtualTakesReturnsProblematicTypes::~HasVirtualTakesReturnsProblematicTypes()
{
}
const char* HasVirtualTakesReturnsProblematicTypes::virtualTakesAndReturnsString(const char* c)
{
return c;
@ -1470,10 +1295,6 @@ TestString::TestString() : unicodeConst(L"ქართული ენა"), uni
{
}
TestString::~TestString()
{
}
TestChar32String::TestChar32String() :
thirtyTwoBitConst(U"ქართული ენა")
{
@ -1511,30 +1332,6 @@ void decltypeFunctionPointer() {}
void usesDecltypeFunctionPointer(funcPtr func) {}
PrimaryBaseWithAbstractWithDefaultArg::PrimaryBaseWithAbstractWithDefaultArg()
{
}
PrimaryBaseWithAbstractWithDefaultArg::~PrimaryBaseWithAbstractWithDefaultArg()
{
}
SecondaryBaseWithAbstractWithDefaultArg::SecondaryBaseWithAbstractWithDefaultArg()
{
}
SecondaryBaseWithAbstractWithDefaultArg::~SecondaryBaseWithAbstractWithDefaultArg()
{
}
HasSecondaryBaseWithAbstractWithDefaultArg::HasSecondaryBaseWithAbstractWithDefaultArg()
{
}
HasSecondaryBaseWithAbstractWithDefaultArg::~HasSecondaryBaseWithAbstractWithDefaultArg()
{
}
void HasSecondaryBaseWithAbstractWithDefaultArg::abstract(const Foo& foo)
{
}
@ -1543,28 +1340,16 @@ void HasSecondaryBaseWithAbstractWithDefaultArg::abstractWithNoDefaultArg(const
{
}
MissingObjectOnVirtualCallSecondaryBase::MissingObjectOnVirtualCallSecondaryBase()
{
}
int MissingObjectOnVirtualCallSecondaryBase::f()
{
return 5;
}
MissingObjectOnVirtualCall::MissingObjectOnVirtualCall()
{
}
int MissingObjectOnVirtualCall::f()
{
return 15;
}
HasMissingObjectOnVirtualCall::HasMissingObjectOnVirtualCall()
{
}
int HasMissingObjectOnVirtualCall::makeMissingObjectOnVirtualCall()
{
return stackOverflowOnVirtualCall->f();
@ -1611,26 +1396,10 @@ int ImplementsAbstractsFromPrimaryAndSecondary::abstractReturnsFieldInSecondaryB
return field + 2;
}
HasBaseSetter::HasBaseSetter()
{
}
HasBaseSetter::~HasBaseSetter()
{
}
void HasBaseSetter::setBaseSetter(int value)
{
}
HasGetterAndOverriddenSetter::HasGetterAndOverriddenSetter()
{
}
HasGetterAndOverriddenSetter::~HasGetterAndOverriddenSetter()
{
}
int HasGetterAndOverriddenSetter::baseSetter()
{
return field;
@ -1689,10 +1458,6 @@ ComplexArrayElement::ComplexArrayElement() : BoolField(false), IntField(0), Floa
{
}
HasComplexArray::HasComplexArray()
{
}
TestIndexedProperties::TestIndexedProperties() : field(0)
{
}
@ -1728,14 +1493,6 @@ void InlineNamespace::FunctionInsideInlineNamespace()
{
}
TestArrays::TestArrays()
{
}
TestArrays::~TestArrays()
{
}
int TestArrays::takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const
{
return arrayOfPointersToObjects[0]->A + arrayOfPointersToObjects[1]->A +
@ -1787,30 +1544,10 @@ int TestArrays::virtualTakeArrays(Foo *fixedArrayOfPointersToObjects[], int fixe
return takeArrays(fixedArrayOfPointersToObjects, fixedArrayOfPrimitives, fixedArrayOfPointersToPrimitives);
}
HasFixedArrayOfPointers::HasFixedArrayOfPointers()
{
}
HasFixedArrayOfPointers::~HasFixedArrayOfPointers()
{
}
SimpleInterface::SimpleInterface()
{
}
SimpleInterface::~SimpleInterface()
{
}
InterfaceTester::InterfaceTester() : interface(0)
{
}
InterfaceTester::~InterfaceTester()
{
}
int InterfaceTester::capacity()
{
return interface->capacity();
@ -1831,14 +1568,6 @@ void InterfaceTester::setInterface(SimpleInterface* i)
interface = i;
}
HasFunctionPtrField::HasFunctionPtrField()
{
}
HasFunctionPtrField::~HasFunctionPtrField()
{
}
void va_listFunction(va_list v)
{
}
@ -1918,7 +1647,6 @@ const char32_t* TestCSharpString32(const char32_t* in, const char32_t** out)
return ret.data();
}
ConversionFunctions::ConversionFunctions() = default;
ConversionFunctions::operator short* () { return &field; }
ConversionFunctions::operator short& () { return field; }
ConversionFunctions::operator short() { return field; }

Просмотреть файл

@ -24,7 +24,6 @@ public:
Foo(char16_t ch);
Foo(wchar_t ch);
Foo(const Foo& other);
~Foo();
int method();
int operator[](int i) const;
int operator[](unsigned int i);
@ -111,7 +110,6 @@ public:
Bar();
Bar(Qux qux);
Bar(Items item);
~Bar();
int method();
const Foo& operator[](int i) const;
Foo& operator[](int i);
@ -143,13 +141,8 @@ private:
Foo m_foo;
};
Bar::Bar() : index(0) {}
class DLL_API ForceCreationOfInterface : public Foo, public Bar
{
public:
ForceCreationOfInterface();
~ForceCreationOfInterface();
};
class DLL_API Baz : public Foo, public Bar
@ -165,7 +158,6 @@ public:
Baz();
Baz(Bar::Items item);
~Baz();
int P;
@ -293,8 +285,6 @@ public:
class DLL_API TestRenaming
{
public:
TestRenaming();
~TestRenaming();
void name();
void Name();
int property();
@ -312,7 +302,6 @@ enum class Flags
class DLL_API UsesPointerToEnum
{
public:
UsesPointerToEnum();
Flags* _flags;
void hasPointerToEnumInParam(Flags* flag);
};
@ -320,7 +309,6 @@ public:
class DLL_API UsesPointerToEnumInParamOfVirtual
{
public:
UsesPointerToEnumInParamOfVirtual();
virtual ~UsesPointerToEnumInParamOfVirtual();
virtual QFlags<Flags> hasPointerToEnumInParam(const QFlags<Flags>& pointerToEnum) const;
static QFlags<Flags> callOverrideOfHasPointerToEnumInParam(
@ -364,7 +352,6 @@ namespace Qt
class DLL_API QColor
{
public:
QColor();
QColor(Qt::GlobalColor color);
};
@ -506,7 +493,6 @@ protected:
class DLL_API HasOverridesWithChangedAccessBase
{
public:
HasOverridesWithChangedAccessBase();
virtual void privateOverride(int i = 5);
protected:
virtual void publicOverride();
@ -517,7 +503,6 @@ private:
class DLL_API HasOverridesWithChangedAccess : public HasOverridesWithChangedAccessBase
{
public:
HasOverridesWithChangedAccess();
void publicOverride();
private:
virtual void privateOverride(int i);
@ -525,8 +510,6 @@ private:
class DLL_API HasOverridesWithIncreasedProtectedAccess : public HasOverridesWithChangedAccess
{
public:
HasOverridesWithIncreasedProtectedAccess();
protected:
virtual void differentIncreasedAccessOverride();
};
@ -534,7 +517,6 @@ protected:
class DLL_API HasOverridesWithIncreasedAccess : public HasOverridesWithChangedAccess
{
public:
HasOverridesWithIncreasedAccess();
virtual void privateOverride(int i);
virtual void differentIncreasedAccessOverride();
};
@ -557,8 +539,6 @@ class DLL_API IgnoredTypeInheritingNonIgnoredWithNoEmptyCtor : public P
class DLL_API HasOverriddenInManaged
{
public:
HasOverriddenInManaged();
~HasOverriddenInManaged();
void setOverriddenInManaged(Baz *value);
int callOverriddenInManaged();
private:
@ -708,7 +688,6 @@ private:
class DLL_API CallDtorVirtually : public HasVirtualDtor1
{
public:
CallDtorVirtually();
~CallDtorVirtually();
static bool Destroyed;
static HasVirtualDtor1* getHasVirtualDtor1(HasVirtualDtor1* returned);
@ -728,8 +707,6 @@ protected:
class DLL_API TestOverrideFromSecondaryBase : public Foo, public SecondaryBase
{
public:
TestOverrideFromSecondaryBase();
~TestOverrideFromSecondaryBase();
void VirtualMember();
void setProperty(int value);
};
@ -760,24 +737,16 @@ public:
class DLL_API HasProtectedVirtual
{
public:
HasProtectedVirtual();
protected:
virtual void protectedVirtual();
};
class DLL_API InheritanceBuffer : public Foo, public HasProtectedVirtual
{
public:
InheritanceBuffer();
~InheritanceBuffer();
};
class DLL_API InheritsProtectedVirtualFromSecondaryBase : public InheritanceBuffer
{
public:
InheritsProtectedVirtualFromSecondaryBase();
~InheritsProtectedVirtualFromSecondaryBase();
protected:
void protectedVirtual();
};
@ -787,7 +756,6 @@ void DLL_API freeFunctionWithUnsupportedDefaultArg(Foo foo = Foo());
class DLL_API TypeMappedWithOperator
{
public:
TypeMappedWithOperator();
int operator |(int i);
};
@ -796,7 +764,6 @@ class HasOverrideOfHasPropertyWithDerivedType;
class DLL_API HasPropertyWithDerivedType
{
public:
HasPropertyWithDerivedType();
HasOverrideOfHasPropertyWithDerivedType* hasPropertyWithDerivedTypeSubclass;
virtual void causeRenamingError();
};
@ -804,7 +771,6 @@ public:
class DLL_API HasOverrideOfHasPropertyWithDerivedType : public HasPropertyWithDerivedType
{
public:
HasOverrideOfHasPropertyWithDerivedType();
virtual void causeRenamingError();
};
@ -824,20 +790,16 @@ public:
class DLL_API OverrideFromIndirectSecondaryBaseBase
{
public:
OverrideFromIndirectSecondaryBaseBase();
virtual int property();
};
class DLL_API OverrideFromDirectSecondaryBase : public Foo, public OverrideFromIndirectSecondaryBaseBase
{
public:
OverrideFromDirectSecondaryBase();
};
class DLL_API OverrideFromIndirectSecondaryBase : public OverrideFromDirectSecondaryBase
{
public:
OverrideFromIndirectSecondaryBase();
int property();
};
@ -850,7 +812,6 @@ public:
class DLL_API TestOutTypeInterfaces
{
public:
TestOutTypeInterfaces();
void funcTryInterfaceTypePtrOut(CS_OUT TestParamToInterfacePassBaseTwo* classTry);
void funcTryInterfaceTypeOut(CS_OUT TestParamToInterfacePassBaseTwo classTry);
};
@ -870,8 +831,6 @@ TemplateWithDependentField<T>::TemplateWithDependentField()
class DLL_API DerivesFromTemplateInstantiation : public TemplateWithDependentField<int>
{
public:
DerivesFromTemplateInstantiation();
};
DLL_API int PassConstantArrayRef(int(&arr)[2]);
@ -879,7 +838,6 @@ DLL_API int PassConstantArrayRef(int(&arr)[2]);
class DLL_API TestComparison
{
public:
TestComparison();
int A;
float B;
bool operator ==(const TestComparison& other) const;
@ -888,7 +846,6 @@ public:
class DLL_API OverridePropertyFromIndirectPrimaryBaseBase
{
public:
OverridePropertyFromIndirectPrimaryBaseBase();
virtual ~OverridePropertyFromIndirectPrimaryBaseBase();
virtual int property() = 0;
virtual void setProperty(int value) = 0;
@ -897,21 +854,18 @@ public:
class DLL_API OverridePropertyFromDirectPrimaryBase : public OverridePropertyFromIndirectPrimaryBaseBase
{
public:
OverridePropertyFromDirectPrimaryBase();
void setProperty(int value);
};
class DLL_API OverridePropertyFromIndirectPrimaryBase : public OverridePropertyFromDirectPrimaryBase
{
public:
OverridePropertyFromIndirectPrimaryBase();
int property();
};
class DLL_API AbstractOverrideFromSecondaryBase : public Foo, public OverridePropertyFromIndirectPrimaryBaseBase
{
public:
AbstractOverrideFromSecondaryBase();
virtual ~AbstractOverrideFromSecondaryBase();
virtual void setProperty(int value) = 0;
};
@ -919,7 +873,6 @@ public:
class DLL_API QObject
{
public:
QObject();
virtual ~QObject();
virtual void event();
};
@ -928,7 +881,6 @@ class DLL_API QPaintDevice
{
public:
QPaintDevice();
~QPaintDevice();
int test;
virtual void changeVTableLayout();
};
@ -937,7 +889,6 @@ class DLL_API QWidget : public QObject, QPaintDevice
{
public:
QWidget();
~QWidget();
virtual void event();
private:
QObject child;
@ -947,7 +898,6 @@ class DLL_API QPainter
{
public:
QPainter(QPaintDevice& paintDevice);
~QPainter();
};
class DLL_API QApplication : public QObject
@ -965,10 +915,9 @@ public:
char* property();
};
class InheritsFromHasSamePropertyInDerivedAbstractType : public HasSamePropertyInDerivedAbstractType
class DLL_API InheritsFromHasSamePropertyInDerivedAbstractType : public HasSamePropertyInDerivedAbstractType
{
public:
InheritsFromHasSamePropertyInDerivedAbstractType();
virtual ~InheritsFromHasSamePropertyInDerivedAbstractType();
virtual int property() = 0;
};
@ -998,7 +947,6 @@ public:
class DLL_API VirtualDtorAddedInDerived : public Foo
{
public:
VirtualDtorAddedInDerived();
virtual ~VirtualDtorAddedInDerived();
static bool dtorCalled;
};
@ -1082,8 +1030,6 @@ class ForwardInOtherUnitButSameModule;
class DLL_API HasVirtualTakesReturnsProblematicTypes
{
public:
HasVirtualTakesReturnsProblematicTypes();
~HasVirtualTakesReturnsProblematicTypes();
virtual const char* virtualTakesAndReturnsString(const char* c);
const char* callsVirtualToReturnString(const char* c);
virtual bool virtualTakesAndReturnsBool(bool b);
@ -1150,7 +1096,6 @@ class DLL_API TestString
{
public:
TestString();
~TestString();
const wchar_t* unicodeConst;
wchar_t* unicode;
};
@ -1189,24 +1134,18 @@ DLL_API void usesDecltypeFunctionPointer(funcPtr func);
class DLL_API PrimaryBaseWithAbstractWithDefaultArg
{
public:
PrimaryBaseWithAbstractWithDefaultArg();
~PrimaryBaseWithAbstractWithDefaultArg();
virtual void abstractWithNoDefaultArg(const Foo& foo) = 0;
};
class DLL_API SecondaryBaseWithAbstractWithDefaultArg
{
public:
SecondaryBaseWithAbstractWithDefaultArg();
~SecondaryBaseWithAbstractWithDefaultArg();
virtual void abstract(const Foo& foo = Foo()) = 0;
};
class DLL_API HasSecondaryBaseWithAbstractWithDefaultArg : public PrimaryBaseWithAbstractWithDefaultArg, public SecondaryBaseWithAbstractWithDefaultArg
{
public:
HasSecondaryBaseWithAbstractWithDefaultArg();
~HasSecondaryBaseWithAbstractWithDefaultArg();
virtual void abstract(const Foo& foo = Foo());
virtual void abstractWithNoDefaultArg(const Foo& foo = Foo());
};
@ -1214,21 +1153,18 @@ public:
class DLL_API MissingObjectOnVirtualCallSecondaryBase
{
public:
MissingObjectOnVirtualCallSecondaryBase();
virtual int f();
};
class DLL_API MissingObjectOnVirtualCall : public HasVirtualDtor1, public MissingObjectOnVirtualCallSecondaryBase
{
public:
MissingObjectOnVirtualCall();
int f();
};
class DLL_API HasMissingObjectOnVirtualCall
{
public:
HasMissingObjectOnVirtualCall();
int makeMissingObjectOnVirtualCall();
void setMissingObjectOnVirtualCall(MissingObjectOnVirtualCall* value);
private:
@ -1267,16 +1203,12 @@ private:
class DLL_API HasBaseSetter
{
public:
HasBaseSetter();
~HasBaseSetter();
virtual void setBaseSetter(int value);
};
class DLL_API HasGetterAndOverriddenSetter : public HasBaseSetter
{
public:
HasGetterAndOverriddenSetter();
~HasGetterAndOverriddenSetter();
void setBaseSetter(int value);
int baseSetter();
protected:
@ -1343,7 +1275,6 @@ struct DLL_API ComplexArrayElement
struct DLL_API HasComplexArray
{
HasComplexArray();
ComplexArrayElement complexArray[ARRAY_LENGTH_MACRO];
};
@ -1378,8 +1309,6 @@ inline namespace InlineNamespace
class DLL_API TestArrays
{
public:
TestArrays();
~TestArrays();
int takeArrays(Foo* arrayOfPointersToObjects[], int arrayOfPrimitives[], Foo arrayOfObjects[]) const;
int takeArrays(Foo* fixedArrayOfPointersToObjects[3], int fixedArrayOfPrimitives[4],
int* fixedArrayOfPointersToPrimitives[5]) const;
@ -1398,8 +1327,6 @@ class TestForwardedClassInAnotherUnit
class DLL_API HasFixedArrayOfPointers
{
public:
HasFixedArrayOfPointers();
~HasFixedArrayOfPointers();
Foo* fixedArrayOfPointers[3];
};
@ -1414,8 +1341,6 @@ static int FOOBAR_CONSTANT = 42;
class DLL_API SimpleInterface
{
public:
SimpleInterface();
~SimpleInterface();
virtual int size() const = 0;
virtual int capacity() const = 0;
virtual void* get(int n) = 0;
@ -1426,7 +1351,6 @@ class DLL_API InterfaceTester
{
public:
InterfaceTester();
~InterfaceTester();
int capacity();
int size();
void* get(int n);
@ -1438,8 +1362,6 @@ private:
class DLL_API HasFunctionPtrField
{
public:
HasFunctionPtrField();
~HasFunctionPtrField();
int (*functionPtrField)(const char*);
int (*functionPtrTakeFunctionPtrField)(int(*TakenInFuncPtrField)());
};
@ -1510,7 +1432,6 @@ struct DLL_API ClassZeroAllocatedMemoryTest
struct DLL_API ConversionFunctions
{
ConversionFunctions();
operator short* ();
operator short& ();
operator short();

Просмотреть файл

@ -23,22 +23,6 @@ void T2::setField(int value)
field = value;
}
DerivedFromSpecializationOfUnsupportedTemplate::DerivedFromSpecializationOfUnsupportedTemplate()
{
}
DerivedFromSpecializationOfUnsupportedTemplate::~DerivedFromSpecializationOfUnsupportedTemplate()
{
}
HasDefaultTemplateArgument<bool, bool>::HasDefaultTemplateArgument()
{
}
HasDefaultTemplateArgument<bool, bool>::~HasDefaultTemplateArgument()
{
}
bool HasDefaultTemplateArgument<bool, bool>::property()
{
return field;
@ -61,22 +45,6 @@ void HasDefaultTemplateArgument<bool, bool>::setStaticProperty(const bool& t)
bool HasDefaultTemplateArgument<bool, bool>::staticField;
DerivesFromExplicitSpecialization::DerivesFromExplicitSpecialization()
{
}
DerivesFromExplicitSpecialization::~DerivesFromExplicitSpecialization()
{
}
HasVirtualTemplate::HasVirtualTemplate()
{
}
HasVirtualTemplate::~HasVirtualTemplate()
{
}
VirtualTemplate<int> HasVirtualTemplate::getVCopy()
{
return *v;
@ -92,26 +60,6 @@ int HasVirtualTemplate::function()
return v->function();
}
SpecializedInterfaceForMap::SpecializedInterfaceForMap()
{
}
SpecializedInterfaceForMap::~SpecializedInterfaceForMap()
{
}
HasSpecializationForSecondaryBase::HasSpecializationForSecondaryBase()
{
}
HasSpecializationForSecondaryBase::~HasSpecializationForSecondaryBase()
{
}
TemplateSpecializer::TemplateSpecializer()
{
}
IndependentFields<bool> TemplateSpecializer::getIndependentFields()
{
return IndependentFields<bool>();
@ -141,14 +89,6 @@ VirtualTemplate<void> TemplateSpecializer::returnSpecializedWithVoid()
return VirtualTemplate<void>();
}
RegularDynamic::RegularDynamic()
{
}
RegularDynamic::~RegularDynamic()
{
}
void RegularDynamic::virtualFunction()
{
}

Просмотреть файл

@ -6,6 +6,12 @@
#include <string>
#include <map>
class DeriveProtectedDtor
{
protected:
~DeriveProtectedDtor() {}
};
class DLL_API QString
{
};
@ -249,9 +255,6 @@ DependentValueFields<T> DependentValueFields<T>::operator+(const DependentValueF
class DLL_API DerivedFromSpecializationOfUnsupportedTemplate : public DependentValueFields<int>
{
public:
DerivedFromSpecializationOfUnsupportedTemplate();
~DerivedFromSpecializationOfUnsupportedTemplate();
};
template <typename T>
@ -346,8 +349,6 @@ template <>
class DLL_API HasDefaultTemplateArgument<bool, bool>
{
public:
HasDefaultTemplateArgument();
~HasDefaultTemplateArgument();
bool property();
void setProperty(const bool& t);
static bool staticProperty();
@ -432,9 +433,6 @@ DerivesFromTemplateWithExplicitSpecialization<T, D>::~DerivesFromTemplateWithExp
class DLL_API DerivesFromExplicitSpecialization : public DerivesFromTemplateWithExplicitSpecialization<bool, bool>
{
public:
DerivesFromExplicitSpecialization();
~DerivesFromExplicitSpecialization();
};
template <typename T>
@ -455,6 +453,7 @@ class TemplateWithIndexer
{
public:
TemplateWithIndexer();
~TemplateWithIndexer();
T& operator[](int i);
T& operator[](const T& key);
T& operator[](const char* string);
@ -470,6 +469,11 @@ TemplateWithIndexer<T>::TemplateWithIndexer()
{
}
template <typename T>
TemplateWithIndexer<T>::~TemplateWithIndexer<T>()
{
}
template <typename T>
T& TemplateWithIndexer<T>::operator[](int i)
{
@ -542,8 +546,6 @@ T* VirtualTemplate<T>::function(T* t)
class DLL_API HasVirtualTemplate
{
public:
HasVirtualTemplate();
~HasVirtualTemplate();
VirtualTemplate<int> getVCopy();
void setV(VirtualTemplate<int>* value);
int function();
@ -554,18 +556,12 @@ private:
class DLL_API SpecializedInterfaceForMap : public InternalWithExtension<char>
{
public:
SpecializedInterfaceForMap();
~SpecializedInterfaceForMap();
};
class DLL_API HasSpecializationForSecondaryBase : public DependentValueFields<int>,
public IndependentFields<int>,
public InternalWithExtension<float>
{
public:
HasSpecializationForSecondaryBase();
~HasSpecializationForSecondaryBase();
};
template <typename T>
@ -574,7 +570,6 @@ class TemplateInAnotherUnit;
class DLL_API TemplateSpecializer
{
public:
TemplateSpecializer();
template <typename T>
class NestedTemplate
{
@ -652,8 +647,6 @@ struct MapResultType<InputSequence<T>, MapFunctor>
class DLL_API RegularDynamic
{
public:
RegularDynamic();
~RegularDynamic();
virtual void virtualFunction();
};
@ -789,37 +782,6 @@ template<> inline void* qbswap<1>(const void *source, size_t count, void *dest)
return 0;
}
// force the symbols for the template instantiations because we do not have the auto-compilation for the generated C++ source
template class DLL_API IndependentFields<int>;
template class DLL_API IndependentFields<bool>;
template class DLL_API IndependentFields<T1>;
template class DLL_API IndependentFields<const T1>;
template class DLL_API IndependentFields<std::string>;
template class DLL_API Base<int>;
template class DLL_API DependentValueFields<int>;
template class DLL_API DependentValueFields<int*>;
template class DLL_API DependentValueFields<float>;
template class DLL_API DependentValueFields<double>;
template class DLL_API DependentPointerFields<float>;
template class DLL_API VirtualTemplate<int>;
template class DLL_API VirtualTemplate<bool>;
template class DLL_API HasDefaultTemplateArgument<int, int>;
template class DLL_API DerivedChangesTypeName<T1>;
template class DLL_API TemplateWithIndexer<int>;
template class DLL_API TemplateWithIndexer<void*>;
template class DLL_API TemplateWithIndexer<UsedInTemplatedIndexer>;
template class DLL_API TemplateWithIndexer<T1>;
template class DLL_API TemplateWithIndexer<T2*>;
template class DLL_API TemplateWithIndexer<float>;
template class DLL_API TemplateWithIndexer<const char*>;
template class DLL_API TemplateDerivedFromRegularDynamic<RegularDynamic>;
template class DLL_API HasCtorWithMappedToEnum<TestFlag>;
template class DLL_API TwoTemplateArgs<int*, int*>;
template class DLL_API TwoTemplateArgs<int*, int>;
template class DLL_API TwoTemplateArgs<int*, float>;
template class DLL_API TwoTemplateArgs<const char*, int>;
template class DLL_API TwoTemplateArgs<QString, int>;
class TestForwardedClassInAnotherUnit;
// Forward declaration of class as friend

Просмотреть файл

@ -1,42 +1,6 @@
#include "Common.h"
#include <string.h>
TestPacking::TestPacking()
{
}
TestPacking1::TestPacking1()
{
}
TestPacking1::~TestPacking1()
{
}
TestPacking2::TestPacking2()
{
}
TestPacking2::~TestPacking2()
{
}
TestPacking4::TestPacking4()
{
}
TestPacking4::~TestPacking4()
{
}
TestPacking8::TestPacking8()
{
}
TestPacking8::~TestPacking8()
{
}
Foo::NestedAbstract::~NestedAbstract()
{
}
@ -76,7 +40,7 @@ void Foo::TakesTypedefedPtr(FooPtr date)
{
}
int Foo::TakesRef(const Foo &other)
int Foo::TakesRef(const Foo& other)
{
return other.A;
}
@ -111,7 +75,7 @@ Foo2 Foo2::operator<<(signed int i)
Foo2 Foo2::operator<<(signed long l)
{
return *this << (signed int) l;
return *this << (signed int)l;
}
char Foo2::testCharMarshalling(char c)
@ -155,10 +119,6 @@ bool operator ==(Bar::Item item, const Bar& bar)
return item == bar.RetItem1();
}
Bar2::Nested::Nested()
{
}
Bar2::Nested::operator int() const
{
return 300;
@ -189,16 +149,6 @@ Foo2 Bar2::needFixedInstance() const
return f;
}
Hello::Hello ()
{
//cout << "Ctor!" << "\n";
}
Hello::Hello(const Hello& hello)
{
}
void Hello::PrintHello(const char* s)
{
//cout << "PrintHello: " << s << "\n";
@ -315,28 +265,28 @@ void Hello::EnumInOutRef(Enum& e)
void Hello::StringOut(CS_OUT const char** str)
{
*str = "HelloStringOut";
*str = "HelloStringOut";
}
void Hello::StringOutRef(CS_OUT const char*& str)
{
str = "HelloStringOutRef";
str = "HelloStringOutRef";
}
void Hello::StringInOut(CS_IN_OUT const char** str)
{
if (strcmp(*str, "Hello") == 0)
*str = "StringInOut";
else
*str = "Failed";
if (strcmp(*str, "Hello") == 0)
*str = "StringInOut";
else
*str = "Failed";
}
void Hello::StringInOutRef(CS_IN_OUT const char*& str)
{
if (strcmp(str, "Hello") == 0)
str = "StringInOutRef";
else
str = "Failed";
if (strcmp(str, "Hello") == 0)
str = "StringInOutRef";
else
str = "Failed";
}
void Hello::StringTypedef(const TypedefChar* str)
@ -386,18 +336,6 @@ AbstractFoo::~AbstractFoo()
{
}
ImplementsAbstractFoo::ImplementsAbstractFoo()
{
}
ImplementsAbstractFoo::ImplementsAbstractFoo(const ImplementsAbstractFoo& other)
{
}
ImplementsAbstractFoo::~ImplementsAbstractFoo()
{
}
int ImplementsAbstractFoo::pureFunction(typedefInOverride i)
{
return 5;
@ -413,10 +351,6 @@ int ImplementsAbstractFoo::pureFunction2(bool* ok)
return 15;
}
ReturnsAbstractFoo::ReturnsAbstractFoo() {}
ReturnsAbstractFoo::~ReturnsAbstractFoo() {}
const AbstractFoo& ReturnsAbstractFoo::getFoo()
{
return i;
@ -431,10 +365,6 @@ Ex2* DerivedException::clone()
return 0;
}
DefaultParameters::DefaultParameters()
{
}
void DefaultParameters::Foo(int a, int b)
{
}
@ -451,10 +381,6 @@ void DefaultParameters::Bar()
{
}
common::common()
{
}
int test(common& s)
{
return 5;
@ -465,7 +391,7 @@ int operator *(TestMoveOperatorToClass klass, int b)
return klass.A * b;
}
TestMoveOperatorToClass::TestMoveOperatorToClass()
TestMoveOperatorToClass::TestMoveOperatorToClass()
{
}
@ -495,14 +421,6 @@ void va_listFunction(va_list v)
{
}
TestNestedTypes::TestNestedTypes()
{
}
TestNestedTypes::~TestNestedTypes()
{
}
void TestDelegates::MarshalUnattributedDelegate(DelegateInGlobalNamespace del)
{
}
@ -530,12 +448,12 @@ int (*TestDelegates::MarshalAnonymousDelegate4())(int n)
return f;
}
int TestDelegates::MarshalAnonymousDelegate5(int (STDCALL *del)(int))
int TestDelegates::MarshalAnonymousDelegate5(int (STDCALL* del)(int))
{
return del(2);
}
int TestDelegates::MarshalAnonymousDelegate6(int (STDCALL *del)(int))
int TestDelegates::MarshalAnonymousDelegate6(int (STDCALL* del)(int))
{
return del(3);
}
@ -545,17 +463,17 @@ ClassA::ClassA(int value)
Value = value;
}
ClassB::ClassB(const ClassA &x)
ClassB::ClassB(const ClassA& x)
{
Value = x.Value;
}
ClassC::ClassC(const ClassA *x)
ClassC::ClassC(const ClassA* x)
{
Value = x->Value;
}
ClassC::ClassC(const ClassB &x)
ClassC::ClassC(const ClassB& x)
{
Value = x.Value;
}
@ -596,14 +514,6 @@ void DelegateNamespace::f2(void (*)())
{
}
HasStdString::HasStdString()
{
}
HasStdString::~HasStdString()
{
}
std::string HasStdString::testStdString(const std::string& s)
{
return s + "_test";
@ -629,10 +539,10 @@ int Function()
}
TestProperties::TestProperties() : Field(0), ArchiveName(0),
FieldValue(0), _refToPrimitiveInSetter(0),
_getterAndSetterWithTheSameName(0), _setterReturnsBoolean(0),
_virtualSetterReturnsBoolean(0), _conflict(Conflict::Value1),
ConstRefField(Field)
FieldValue(0), _refToPrimitiveInSetter(0),
_getterAndSetterWithTheSameName(0), _setterReturnsBoolean(0),
_virtualSetterReturnsBoolean(0), _conflict(Conflict::Value1),
ConstRefField(Field)
{
}
@ -822,11 +732,6 @@ int TestProperties::GetArchiveName() const
{
return 20;
}
HasOverridenSetter::HasOverridenSetter()
{
}
void HasOverridenSetter::setVirtual(bool value)
{
}
@ -885,23 +790,13 @@ Bar& TestIndexedProperties::operator[](const Foo& key)
return bar;
}
TestVariables::TestVariables()
{
}
int TestVariables::VALUE;
void TestVariables::SetValue(int value) { VALUE = value; }
TestWideStrings::TestWideStrings()
{
}
LPCWSTR TestWideStrings::GetWidePointer() { return L"Hello"; }
LPCWSTR TestWideStrings::GetWideNullPointer() { return 0; }
TestFixedArrays::TestFixedArrays() {}
InternalCtorAmbiguity::InternalCtorAmbiguity(void* param)
{
// cause a crash to indicate this is the incorrect ctor to invoke
@ -989,10 +884,6 @@ void HasVirtualProperty::setProtectedProperty(int value)
{
}
ChangedAccessOfInheritedProperty::ChangedAccessOfInheritedProperty()
{
}
int ChangedAccessOfInheritedProperty::getProperty()
{
return 2;
@ -1011,19 +902,11 @@ void ChangedAccessOfInheritedProperty::setProtectedProperty(int value)
{
}
ReturnsEmpty::ReturnsEmpty()
{
}
Empty ReturnsEmpty::getEmpty()
{
return Empty();
}
RefTypeClassPassTry::RefTypeClassPassTry()
{
}
void funcTryRefTypePtrOut(CS_OUT RefTypeClassPassTry* classTry)
{
}
@ -1044,10 +927,6 @@ HasProblematicFields::HasProblematicFields() : b(false), c(0)
{
}
HasVirtualReturningHasProblematicFields::HasVirtualReturningHasProblematicFields()
{
}
HasProblematicFields HasVirtualReturningHasProblematicFields::returnsProblematicFields()
{
return HasProblematicFields();
@ -1067,45 +946,20 @@ int DerivedClassVirtual::retInt(const Foo2& foo)
{
return 2;
}
DerivedClassAbstractVirtual::~DerivedClassAbstractVirtual()
{
}
DerivedClassOverrideAbstractVirtual::DerivedClassOverrideAbstractVirtual()
{
}
int DerivedClassOverrideAbstractVirtual::retInt(const Foo& foo)
{
return 1;
}
BufferForVirtualFunction::BufferForVirtualFunction()
{
}
OverridesNonDirectVirtual::OverridesNonDirectVirtual()
{
}
int OverridesNonDirectVirtual::retInt(const Foo& foo)
{
return 3;
}
AbstractWithVirtualDtor::AbstractWithVirtualDtor()
{
}
AbstractWithVirtualDtor::~AbstractWithVirtualDtor()
{
}
NonTrivialDtorBase::NonTrivialDtorBase()
{
}
NonTrivialDtorBase::~NonTrivialDtorBase()
{
}
@ -1132,19 +986,11 @@ void NonTrivialDtor::setDtorCalled(bool value)
bool NonTrivialDtor::dtorCalled = false;
DerivedFromTemplateInstantiationWithVirtual::DerivedFromTemplateInstantiationWithVirtual()
{
}
int func_union(union_t u)
{
return u.c;
}
HasProtectedEnum::HasProtectedEnum()
{
}
void HasProtectedEnum::function(ProtectedEnum param)
{
}
@ -1157,18 +1003,6 @@ void FuncWithTemplateTypeAlias(TypeAliasTemplate<int> i)
{
}
HasAbstractOperator::~HasAbstractOperator()
{
}
HasOverloadsWithDifferentPointerKindsToSameType::HasOverloadsWithDifferentPointerKindsToSameType()
{
}
HasOverloadsWithDifferentPointerKindsToSameType::~HasOverloadsWithDifferentPointerKindsToSameType()
{
}
void HasOverloadsWithDifferentPointerKindsToSameType::overload(int& i)
{
}
@ -1239,7 +1073,7 @@ HasCopyAndMoveConstructor::HasCopyAndMoveConstructor(int value)
field = value;
}
HasCopyAndMoveConstructor::HasCopyAndMoveConstructor(const HasCopyAndMoveConstructor &other)
HasCopyAndMoveConstructor::HasCopyAndMoveConstructor(const HasCopyAndMoveConstructor& other)
{
field = other.field;
}
@ -1249,31 +1083,11 @@ HasCopyAndMoveConstructor::HasCopyAndMoveConstructor(HasCopyAndMoveConstructor&&
field = other.field;
}
HasCopyAndMoveConstructor::~HasCopyAndMoveConstructor()
{
}
int HasCopyAndMoveConstructor::getField()
{
return field;
}
HasVirtualFunctionsWithStringParams::HasVirtualFunctionsWithStringParams()
{
}
HasVirtualFunctionsWithStringParams::~HasVirtualFunctionsWithStringParams()
{
}
ImplementsVirtualFunctionsWithStringParams::ImplementsVirtualFunctionsWithStringParams()
{
}
ImplementsVirtualFunctionsWithStringParams::~ImplementsVirtualFunctionsWithStringParams()
{
}
void ImplementsVirtualFunctionsWithStringParams::PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2)
{
}
@ -1283,14 +1097,6 @@ int HasVirtualFunctionsWithStringParams::VirtualFunctionWithStringParam(std::str
return 5;
}
HasVirtualFunctionWithBoolParams::HasVirtualFunctionWithBoolParams()
{
}
HasVirtualFunctionWithBoolParams::~HasVirtualFunctionWithBoolParams()
{
}
bool HasVirtualFunctionWithBoolParams::virtualFunctionWithBoolParamAndReturnsBool(bool testBool)
{
return testBool;
@ -1300,10 +1106,6 @@ HasProtectedCtorWithProtectedParam::HasProtectedCtorWithProtectedParam(Protected
{
}
SecondaryBaseWithIgnoredVirtualMethod::SecondaryBaseWithIgnoredVirtualMethod()
{
}
SecondaryBaseWithIgnoredVirtualMethod::~SecondaryBaseWithIgnoredVirtualMethod()
{
}
@ -1316,10 +1118,6 @@ void SecondaryBaseWithIgnoredVirtualMethod::ignored(const IgnoredType& ignoredPa
{
}
DerivedFromSecondaryBaseWithIgnoredVirtualMethod::DerivedFromSecondaryBaseWithIgnoredVirtualMethod()
{
}
DerivedFromSecondaryBaseWithIgnoredVirtualMethod::~DerivedFromSecondaryBaseWithIgnoredVirtualMethod()
{
}
@ -1336,24 +1134,6 @@ AmbiguousParamNames::AmbiguousParamNames(int instance, int in)
{
}
AmbiguousParamNames::~AmbiguousParamNames()
{
}
HasPropertyNamedAsParent::HasPropertyNamedAsParent()
{
}
HasPropertyNamedAsParent::~HasPropertyNamedAsParent()
{
}
ReturnByValueWithReturnParam::ReturnByValueWithReturnParam() {}
ReturnByValueWithReturnParam::ReturnByValueWithReturnParam(const ReturnByValueWithReturnParam& other) : _ptr(other._ptr) {}
ReturnByValueWithReturnParam::~ReturnByValueWithReturnParam() {}
int ReturnByValueWithReturnParam::getUseCount() { return _ptr.use_count(); }
ReturnByValueWithReturnParam ReturnByValueWithReturnParamFactory::generate()
@ -1410,7 +1190,7 @@ LPCSTR TakeTypedefedMappedType(LPCSTR string)
return UTF8.data();
}
StructWithCopyCtor::StructWithCopyCtor() {}
StructWithCopyCtor::StructWithCopyCtor() : mBits(0) {}
StructWithCopyCtor::StructWithCopyCtor(const StructWithCopyCtor& other) : mBits(other.mBits) {}
uint16_t TestStructWithCopyCtorByValue(StructWithCopyCtor s)
@ -1426,30 +1206,14 @@ DerivedCovariant::~DerivedCovariant()
{
}
NonPrimitiveType::NonPrimitiveType()
{
}
int NonPrimitiveType::GetFoo()
{
return foo;
}
TestFixedNonPrimitiveArrays::TestFixedNonPrimitiveArrays()
{
}
TestGetterSetterToProperties::TestGetterSetterToProperties()
{
}
int TestGetterSetterToProperties::getWidth() { return 640; }
int TestGetterSetterToProperties::getHeight() { return 480; }
PointerToTypedefPointerTest::PointerToTypedefPointerTest()
{
}
void DLL_API PointerToTypedefPointerTestMethod(LPPointerToTypedefPointerTest* lp, int valToSet)
{
(*(*lp)).val = valToSet;
@ -1465,7 +1229,7 @@ TestArraysPointers::TestArraysPointers(MyEnum* values, int count)
if (values && count) Value = values[0];
}
TestCopyConstructorRef::TestCopyConstructorRef()
TestCopyConstructorRef::TestCopyConstructorRef() : A(0), B(0)
{
}
@ -1478,10 +1242,6 @@ TestCopyConstructorRef::TestCopyConstructorRef(const TestCopyConstructorRef& oth
SomeStruct::SomeStruct() : p(1) {}
ClassWithOverloadedOperators::ClassWithOverloadedOperators() {
}
ClassWithOverloadedOperators::ClassWithOverloadedOperators::operator char() { return 1; }
ClassWithOverloadedOperators::operator int() { return 2; }
ClassWithOverloadedOperators::operator short() { return 3; }

Просмотреть файл

@ -14,39 +14,26 @@ public:
int i1;
int i2;
bool b;
TestPacking();
};
#pragma pack(1)
class DLL_API TestPacking1: public TestPacking
{
public:
TestPacking1();
~TestPacking1();
};
#pragma pack(2)
class DLL_API TestPacking2: public TestPacking
{
public:
TestPacking2();
~TestPacking2();
};
#pragma pack(4)
class DLL_API TestPacking4: public TestPacking
{
public:
TestPacking4();
~TestPacking4();
};
#pragma pack(8)
class DLL_API TestPacking8: public TestPacking
{
public:
TestPacking8();
~TestPacking8();
};
#pragma pack()
@ -76,7 +63,7 @@ public:
EmptyEnum2
};
class NestedAbstract
class DLL_API NestedAbstract
{
public:
virtual ~NestedAbstract();
@ -171,7 +158,6 @@ struct DLL_API Bar2 : public Bar
struct DLL_API Nested
{
Nested();
operator int() const;
};
@ -215,9 +201,6 @@ public:
long l;
};
Hello ();
Hello(const Hello& hello);
void PrintHello(const char* s);
bool test1(int i, float f);
int add(int a, int b);
@ -268,9 +251,6 @@ public:
class DLL_API ImplementsAbstractFoo : public AbstractFoo
{
public:
ImplementsAbstractFoo();
ImplementsAbstractFoo(const ImplementsAbstractFoo& other);
~ImplementsAbstractFoo();
typedef int typedefInOverride;
virtual int pureFunction(typedefInOverride i = 0);
virtual int pureFunction1();
@ -281,8 +261,6 @@ private:
class DLL_API ReturnsAbstractFoo
{
public:
ReturnsAbstractFoo();
~ReturnsAbstractFoo();
const AbstractFoo& getFoo();
private:
@ -314,7 +292,6 @@ struct DLL_API DerivedException : public Exception
// Tests for ambiguous call to native functions with default parameters
struct DLL_API DefaultParameters
{
DefaultParameters();
void Foo(int a, int b = 0);
void Foo(int a);
@ -337,8 +314,6 @@ class Derived : public Base<Derived>
// Tests the MoveFunctionToClassPass
class DLL_API common
{
public:
common();
};
DLL_API int test(common& s);
@ -511,8 +486,6 @@ namespace SomeNamespace
class DLL_API ClassWithOverloadedOperators
{
public:
ClassWithOverloadedOperators();
operator char();
operator int();
operator short();
@ -611,7 +584,6 @@ private:
class DLL_API HasOverridenSetter : public TestProperties
{
public:
HasOverridenSetter();
void setVirtual(bool value) override;
int virtualSetterReturnsBoolean() override;
@ -666,7 +638,6 @@ public:
// Tests variables
struct DLL_API TestVariables
{
TestVariables();
static int VALUE;
void SetValue(int value = VALUE);
};
@ -674,7 +645,6 @@ struct DLL_API TestVariables
typedef const wchar_t * LPCWSTR;
struct DLL_API TestWideStrings
{
TestWideStrings();
LPCWSTR GetWidePointer();
LPCWSTR GetWideNullPointer();
};
@ -686,7 +656,6 @@ typedef void (*VoidPtrRetFunctionTypedef) ();
class DLL_API TestFixedArrays
{
public:
TestFixedArrays();
VoidPtrRetFunctionTypedef Array[10];
#ifndef _MSC_VER
TestWideStrings ZeroSizedClassArray[0];
@ -706,7 +675,6 @@ public:
class DLL_API NonPrimitiveType
{
public:
NonPrimitiveType();
int GetFoo();
int foo;
@ -715,13 +683,11 @@ public:
class DLL_API TestFixedNonPrimitiveArrays
{
public:
TestFixedNonPrimitiveArrays();
NonPrimitiveType NonPrimitiveTypeArray[3];
};
struct DLL_API TestGetterSetterToProperties
{
TestGetterSetterToProperties();
int getWidth();
int getHeight();
};
@ -800,8 +766,6 @@ DLL_API void va_listFunction(va_list v);
struct DLL_API TestNestedTypes
{
public:
TestNestedTypes();
~TestNestedTypes();
union as_types
{
int as_int;
@ -822,8 +786,6 @@ public:
class DLL_API HasStdString
{
public:
HasStdString();
~HasStdString();
std::string testStdString(const std::string& s);
std::string testStdStringPassedByValue(std::string s);
std::string s;
@ -895,8 +857,6 @@ public:
class DLL_API RefTypeClassPassTry
{
public:
RefTypeClassPassTry();
};
void DLL_API funcTryRefTypePtrOut(CS_OUT RefTypeClassPassTry* classTry);
@ -925,7 +885,6 @@ protected:
class DLL_API ChangedAccessOfInheritedProperty : public HasVirtualProperty
{
public:
ChangedAccessOfInheritedProperty();
int getProtectedProperty();
void setProtectedProperty(int value);
protected:
@ -940,7 +899,6 @@ class DLL_API Empty
class DLL_API ReturnsEmpty
{
public:
ReturnsEmpty();
Empty getEmpty();
};
@ -960,7 +918,6 @@ public:
class DLL_API HasVirtualReturningHasProblematicFields
{
public:
HasVirtualReturningHasProblematicFields();
virtual HasProblematicFields returnsProblematicFields();
};
@ -982,27 +939,22 @@ public:
class DLL_API DerivedClassAbstractVirtual : public DerivedClassVirtual
{
public:
~DerivedClassAbstractVirtual();
virtual int retInt(const Foo& foo) = 0;
};
class DLL_API DerivedClassOverrideAbstractVirtual : public DerivedClassAbstractVirtual
{
public:
DerivedClassOverrideAbstractVirtual();
virtual int retInt(const Foo& foo);
};
class DLL_API BufferForVirtualFunction : public BaseClassVirtual
{
public:
BufferForVirtualFunction();
};
class DLL_API OverridesNonDirectVirtual : public BufferForVirtualFunction
{
public:
OverridesNonDirectVirtual();
virtual int retInt(const Foo& foo);
};
@ -1080,7 +1032,6 @@ AbstractTemplate<T>::AbstractTemplate()
class DLL_API AbstractWithVirtualDtor
{
public:
AbstractWithVirtualDtor();
virtual ~AbstractWithVirtualDtor();
virtual void abstract() = 0;
};
@ -1088,7 +1039,6 @@ public:
class DLL_API NonTrivialDtorBase
{
public:
NonTrivialDtorBase();
~NonTrivialDtorBase();
};
@ -1143,8 +1093,6 @@ int FunctionTemplateWithDependentTypeDefaultExpr(size_t size = sizeof(T)) {
class DLL_API DerivedFromTemplateInstantiationWithVirtual : public TemplateWithVirtual<int>
{
public:
DerivedFromTemplateInstantiationWithVirtual();
};
typedef union
@ -1156,8 +1104,6 @@ int DLL_API func_union(union_t u);
class DLL_API HasProtectedEnum
{
public:
HasProtectedEnum();
protected:
enum class ProtectedEnum
{
@ -1207,7 +1153,6 @@ private:
class DLL_API HasAbstractOperator
{
public:
~HasAbstractOperator();
virtual bool operator==(const HasAbstractOperator& other) = 0;
};
@ -1267,8 +1212,6 @@ enum
class DLL_API HasOverloadsWithDifferentPointerKindsToSameType
{
public:
HasOverloadsWithDifferentPointerKindsToSameType();
~HasOverloadsWithDifferentPointerKindsToSameType();
void overload(int& i);
void overload(int&& i);
void overload(const int& i);
@ -1294,7 +1237,6 @@ public:
HasCopyAndMoveConstructor(int value);
HasCopyAndMoveConstructor(const HasCopyAndMoveConstructor& other);
HasCopyAndMoveConstructor(HasCopyAndMoveConstructor&& other);
~HasCopyAndMoveConstructor();
int getField();
private:
int field;
@ -1303,8 +1245,6 @@ private:
class DLL_API HasVirtualFunctionsWithStringParams
{
public:
HasVirtualFunctionsWithStringParams();
~HasVirtualFunctionsWithStringParams();
virtual void PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2) = 0;
virtual int VirtualFunctionWithStringParam(std::string testString);
};
@ -1312,16 +1252,12 @@ public:
class DLL_API ImplementsVirtualFunctionsWithStringParams : public HasVirtualFunctionsWithStringParams
{
public:
ImplementsVirtualFunctionsWithStringParams();
~ImplementsVirtualFunctionsWithStringParams();
virtual void PureVirtualFunctionWithStringParams(std::string testString1, std::string testString2);
};
class DLL_API HasVirtualFunctionWithBoolParams
{
public:
HasVirtualFunctionWithBoolParams();
~HasVirtualFunctionWithBoolParams();
virtual bool virtualFunctionWithBoolParamAndReturnsBool(bool testBool);
};
@ -1338,7 +1274,7 @@ protected:
class DLL_API SecondaryBaseWithIgnoredVirtualMethod
{
public:
SecondaryBaseWithIgnoredVirtualMethod();
// HACK: do not delete: work around https://github.com/mono/CppSharp/issues/1534
~SecondaryBaseWithIgnoredVirtualMethod();
virtual void generated();
virtual void ignored(const IgnoredType& ignoredParam);
@ -1347,7 +1283,7 @@ public:
class DLL_API DerivedFromSecondaryBaseWithIgnoredVirtualMethod : public Foo, public SecondaryBaseWithIgnoredVirtualMethod
{
public:
DerivedFromSecondaryBaseWithIgnoredVirtualMethod();
// HACK: do not delete: work around https://github.com/mono/CppSharp/issues/1534
~DerivedFromSecondaryBaseWithIgnoredVirtualMethod();
void generated();
void ignored(const IgnoredType& ignoredParam);
@ -1357,23 +1293,17 @@ class DLL_API AmbiguousParamNames
{
public:
AmbiguousParamNames(int instance, int in);
~AmbiguousParamNames();
};
class DLL_API HasPropertyNamedAsParent
{
public:
HasPropertyNamedAsParent();
~HasPropertyNamedAsParent();
int hasPropertyNamedAsParent;
};
class DLL_API ReturnByValueWithReturnParam
{
public:
ReturnByValueWithReturnParam();
ReturnByValueWithReturnParam(const ReturnByValueWithReturnParam& other);
~ReturnByValueWithReturnParam();
int getUseCount();
private:
@ -1577,7 +1507,6 @@ QScopedPointer<QObjectData> d_ptr;
struct DLL_API PointerToTypedefPointerTest
{
PointerToTypedefPointerTest();
int val;
};
typedef PointerToTypedefPointerTest *LPPointerToTypedefPointerTest;

Просмотреть файл

@ -2,14 +2,6 @@
std::string Foo::StringVariable = "";
Foo::Foo()
{
}
Foo::~Foo()
{
}
// TODO: move this, it has nothing to do with Unicode, it's here only not to break the CLI branch
int Foo::operator[](int i) const
{

Просмотреть файл

@ -4,9 +4,6 @@
class DLL_API Foo
{
public:
Foo();
~Foo();
const char* Unicode;
static std::string StringVariable;

Просмотреть файл

@ -41,14 +41,6 @@ int HasVirtualInCore::virtualInCore(int parameter)
return 1;
}
SecondaryBase::SecondaryBase()
{
}
SecondaryBase::~SecondaryBase()
{
}
void SecondaryBase::function()
{
}

Просмотреть файл

@ -13,11 +13,6 @@ namespace OverlappingNamespace
class DLL_API InBaseLib
{
public:
InBaseLib()
{
};
};
}
@ -115,10 +110,5 @@ typedef DerivedFromSecondaryBaseInDependency RenameDerivedBeforeBase;
class DLL_API SecondaryBase
{
public:
SecondaryBase();
~SecondaryBase();
void function();
};
// force the symbols for the template instantiations because we do not have the auto-compilation for the generated C++ source
template class DLL_API TemplateClass<int>;

Просмотреть файл

@ -23,7 +23,7 @@ namespace CppSharp.Tests
module.IncludeDirs.Add(Path.GetFullPath(GetTestsDirectory(@base)));
module.Headers.Add($"{@base}.h");
module.OutputNamespace = @base;
module.LibraryDirs.Add(driver.Options.OutputDir);
module.LibraryDirs.AddRange(driver.Options.Modules[1].LibraryDirs);
module.Libraries.Add($"{@base}.Native");
driver.Options.Modules[1].Dependencies.Add(module);
}

Просмотреть файл

@ -33,14 +33,6 @@ void Derived::setNestedNSComponent(OverlappingNamespace::InBaseLib c)
nestedNSComponent = c;
}
Derived2::Derived2()
{
}
Derived2::~Derived2()
{
}
Base3 Derived2::getBase()
{
return baseComponent;
@ -85,32 +77,16 @@ DerivedFromExternalSpecialization::DerivedFromExternalSpecialization(int i,
{
}
DerivedFromExternalSpecialization::~DerivedFromExternalSpecialization()
{
}
TemplateWithIndependentFields<Base3> DerivedFromExternalSpecialization::returnExternalSpecialization()
{
return TemplateWithIndependentFields<Base3>();
}
HasVirtualInDependency::HasVirtualInDependency()
{
}
int HasVirtualInDependency::callManagedOverride()
{
return managedObject->virtualInCore(0);
}
DerivedFromSecondaryBaseInDependency::DerivedFromSecondaryBaseInDependency()
{
}
DerivedFromSecondaryBaseInDependency::~DerivedFromSecondaryBaseInDependency()
{
}
bool operator<<(const Base& b, const char* str)
{
return false;

Просмотреть файл

@ -48,8 +48,6 @@ template <typename T> class TemplateClass;
class DLL_API Derived2 : public Base3
{
public:
Derived2();
~Derived2();
Base3 baseComponent;
Base3 getBase();
void setBase(Base3);
@ -71,7 +69,6 @@ private:
class DLL_API HasVirtualInDependency : public HasVirtualInCore
{
public:
HasVirtualInDependency();
HasVirtualInDependency* managedObject;
int callManagedOverride();
};
@ -82,15 +79,11 @@ public:
DerivedFromExternalSpecialization(int i,
TemplateWithIndependentFields<HasVirtualInDependency> defaultExternalSpecialization =
TemplateWithIndependentFields<HasVirtualInDependency>());
~DerivedFromExternalSpecialization();
TemplateWithIndependentFields<Base3> returnExternalSpecialization();
};
class DLL_API DerivedFromSecondaryBaseInDependency : public Derived, public SecondaryBase
{
public:
DerivedFromSecondaryBaseInDependency();
~DerivedFromSecondaryBaseInDependency();
};
DLL_API bool operator<<(const Base& b, const char* str);

Просмотреть файл

@ -18,11 +18,5 @@
<GeneratorInputs Include="*.h" />
<CustomAdditionalCompileInputs Include="@(GeneratorInputs)" />
<UpToDateCheckInput Include="@(GeneratorInputs)" />
<ModuleFiles Include="$(OutputPath)*Std-symbols.*"
Exclude="$(OutputPath)Std-symbols.pdb;$(OutputPath)Std-symbols.exp;$(OutputPath)Std-symbols.lib" />
</ItemGroup>
<Target Name="CopyStdSymbols" AfterTargets="PostBuildEvent">
<Copy SourceFiles="@(ModuleFiles)" DestinationFolder="$(GenDir)$(TestName)" />
</Target>
</Project>

Просмотреть файл

@ -1,14 +1,6 @@
#include "VTables.h"
#include <typeinfo>
Foo::Foo()
{
}
Foo::~Foo()
{
}
int Foo::vfoo()
{
return 5;
@ -39,14 +31,6 @@ int FooCallFoo(Foo* foo)
return foo->vfoo() + 2;
}
BaseClassVirtual::BaseClassVirtual()
{
}
BaseClassVirtual::BaseClassVirtual(const BaseClassVirtual& other)
{
}
int BaseClassVirtual::virtualCallRetInt(BaseClassVirtual* base)
{
return base->retInt();
@ -72,10 +56,6 @@ const char* BaseClassVirtual::getTypeName()
return typeid(BaseClassVirtual).name();
}
DerivedClassVirtual::DerivedClassVirtual()
{
}
int DerivedClassVirtual::retInt()
{
return 10;

Просмотреть файл

@ -9,8 +9,6 @@ public:
};
Foo();
~Foo();
virtual int vfoo();
virtual int vbar();
@ -25,8 +23,6 @@ DLL_API int FooCallFoo(Foo* foo);
class DLL_API BaseClassVirtual
{
public:
BaseClassVirtual();
BaseClassVirtual(const BaseClassVirtual& other);
static int virtualCallRetInt(BaseClassVirtual* base);
virtual int retInt();
static BaseClassVirtual getBase();
@ -37,6 +33,5 @@ public:
class DLL_API DerivedClassVirtual : public BaseClassVirtual
{
public:
DerivedClassVirtual();
virtual int retInt() override;
};