Dimitar Dobrev
2a3fed61b7
Improved the searching for the correct native lib to import.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
5b6a19a0c4
Handled more possible names for type maps when generating the mapped class itself.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
4cb5412915
Fixed a regression when an abstract implementation has a function from a secondary base.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
c16a0287f4
Fixed a regression when wrapping functions which implement secondary bases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
b2a872f431
Merged the passes for properties and made the result non-optional.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
458f7ff25b
Deleted the non-working marshalling interface and the option for it.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
2a369a341d
Simplified the code for generating virtual C# calls.
...
Fixes https://github.com/mono/CppSharp/issues/706 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1b41897172
Fixed the generated C# when a header and a contained name-space bear the same name.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
77f45dee38
Fixed the adjustment of the instance in cases of multiple inheritance.
...
Fixes https://github.com/mono/CppSharp/issues/707 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
05c4213c28
Revert "Fixed the adjustment of the instance in cases of multiple inheritance."
...
This reverts commit e43dd1c18f .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
e43dd1c18f
Fixed the adjustment of the instance in cases of multiple inheritance.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
9cb7155679
Enforced the option for generating partial C# classes by removing it.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
924ceaf85a
Fixed the selection of a virtual table to call virtual methods through in the C# generator.
...
Fixes https://github.com/mono/CppSharp/issues/703 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
098ff73e52
Rename type map database in binding context.
9 years ago
Dimitar Dobrev
9cbb13053a
Fixed the generated code when an override has its access increased.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7c9c91acc3
Fixed the generated C# when a method with a default arg is named the same as another, non-default, of its parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
d2326a3883
Added processing of type aliases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
6ed05c2b5d
Fixed the generated C# with properties constructed from a returned value and a taken reference.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
9fe2d307dc
Fixed the generated C# when marshalling a field of type const wchar_t*.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
1932798d45
Aligned pointers to classes when passing them converted to their secondary bases.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
bcd6b226fa
Fixed the marshalling of arrays.
...
Fixes https://github.com/mono/CppSharp/issues/680 .
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
7b510bec42
Simplified the name of the internal structure.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
b2a90a5d80
Prefixed the internal structure for the C# end to avoid naming conflicts.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Dimitar Dobrev
70f0851635
Ignored extern templates because they just forward to real specialisations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
9 years ago
Joao Matos
a77bc2a91f
Separate parser options from driver options.
...
This will break API compatibility, you will have to update your options setup code.
10 years ago
Joao Matos
4e48af9a4c
Remove the Driver dependency from the generators with a BindingContext.
10 years ago
Dimitar Dobrev
cbafb55044
Removed the managed calls to destructors of std::strings passed by value.
...
The native code calls the destructors itself.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
e2690ba078
Switched the C# generator from manual conversion between strings and pointers to the built-in string marshallers.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
5b52075d32
Fixed the generated usages of internals of template specialisations with dependent fields.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
a4dfeb94be
Moved the marking of supported template specialisations to a pass.
...
This allows custom passes to add other specialisations to support.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
aabe7409d1
Fixed the internals of templates specialising arrays by simplifying the names.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
d419cb7156
Added all system fields to the internal layouts used in the C# generator.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
1771f7462b
Fixed the generation of internals for nested template specialisations with pointers as T.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
fa086e086c
Ensured __int128, __uint128_t and __fp16 are ignored without crashing in the C# generator.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
397d82b2a1
Fixed the generated C# when having a field of type char*.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Joao Matos
573dc623f8
Renamed class names to match file renames.
10 years ago
Joao Matos
f6355ab0f9
Renamed some files.
10 years ago
Dimitar Dobrev
b77d2ccdde
Ensured the system module only contains units from the current run.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
6a0069f9c2
Fixed invalid C# code when wrapping a constant of type std::string.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
4df66454b1
Enabled cleaning up in type maps and used it to dispose of used std::string objects.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
4b82838b54
Extended the C# end with support for free constants and fixed their printing.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
c1be105d46
Added marshalling of fixed char arrays.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
32122a1bba
Properly handled enumeration items in default values of parameters.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
3cd024cccf
Added marshalling of std::string to the C# end.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
06410eddbc
Stored specializations in the templated class itself because ClassTemplate is not a complete declaration.
...
ClassTemplate in Clang does not actually represent a complete declaration. For example, let's see the implementation of clang::ClassTemplateDecl::isThisDeclarationADefinition:
bool isThisDeclarationADefinition() const {
return getTemplatedDecl()->isThisDeclarationADefinition();
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l01995 at the time of this commit)
The above shows that class templates do not have definitions, instead, their "definitions" are those of the real templates classes.
In addition let's see ClassTemplateDecl::getCanonicalDecl():
const ClassTemplateDecl *getCanonicalDecl() const {
return cast<ClassTemplateDecl>(
RedeclarableTemplateDecl::getCanonicalDecl());
}
(http://clang.llvm.org/doxygen/DeclTemplate_8h_source.html#l02023 at the time of this commit)
In turn RedeclarableTemplateDecl::getCanonicalDecl() is defined as:
RedeclarableTemplateDecl *getCanonicalDecl() override {
return getFirstDecl();
}
where getFirstDecl() returns just that - the first encountered declaration which might as well be a forward one.
This means that the only complete declaration ClassTemplateDecl can point to is the template class itself,
and the latter is therefore our only choice if we want to have a full list of all specializations of that template class.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
010e35abc0
Fixed a crash when generating any C# bindings on Windows.
...
It was a regression from the dropping of the C# option for a single generated source file.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
8bda1cc049
Fixed C# generation by ignoring templates pointing to incomplete declarations.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
9b51e30643
Fixed the option for output name-spaces to allow eliminating them.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
4d7c7a5ae7
Fixed uncompilable code when a free function is names after its header.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago
Dimitar Dobrev
00441bb300
Fixed the generated code when specialising types represented the same way in C#.
...
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
10 years ago