Do not generate wrappers for template specializations if original method in template class is ignored.
➕ Add one more include path which Linux usually expects.
Evaluate expressions for enums generated using GenerateEnumFromMacros
Evaluate expressions when generating enum from macros - ExpressionEvaluator taken from https://github.com/codingseb/ExpressionEvaluator
Set the name-space for enums generated from macros.
🏗 Preliminary script for building 32-bit Nuget package
Field property getter returns non-value types by reference instead of by copy.
⚡️ Update VS check when downloading pre-compiled LLVM packages.
➕ Add "run" to verbs.txt
➕ Added support for 16-bit wide characters (char16_t).
🛠 Fixed the generated C++ for symbols when protected classes need them.
✂ Removed the possibility for conflicts between overloads when generating C++ for symbols.
Collected extra symbols in the order of their compilation.
🛠 Fixed the generated C# when a specialisation of a template used as a secondary base has an invalid function.
🛠 Fixed the generated C# when a template interface specialised with another specialisation returns a template parameter.
🛠 Fixed the generated C# when a default arg is assigned a specialisation also used as a secondary base.
🛠 Fixed a crash when a constructor takes a template or specialisation.
🛠 Fixed the generated C# for public fields with type a dependent pointer.
Enabled classes having specializations for secondary bases to call their extensions.
🛠 Fixed the generated C# for subclasses of specialisations used as secondary bases.
🛠 Fixed the generated C# when a template specialization with extensions is used for a secondary base.
Extended the multiple inheritance to work for templates.
🛠 Fixed a regression causing public fields of type specialization to be ignored.
🛠 Fixed the generated C# for templates with optional arguments.
Represented "void" with "object" for template arguments in the generated C#.
🛠 Fixed the generated C# for public fields with type a dependent function pointer.
🛠 Fixed the generated C# when a constructor has a default parameter with type an external specialisation.
Set an index when marshalling the value in setters of properties.
🛠 Fixed the generated C# when a function uses an external specialisation.
🛠 Fixed the generated C# when a base class is an external specialisation.
🛠 Fixed the generated C# for indexers with dependent keys.
🛠 Fixed the generated C# for templated indexers specialised with enums.
➕ Add compiler/abi information to LLVM package names on linux.
Exported entire specialisations when they only have valid functions.
Considered dependent fields when generating internals for types nested in templates.
✂ Removed extensions for non-generated template specialisations.
🛠 Fixed the generated C# when a template returns a specialisation with itself as a type arg.
🛠 Fixed the generated C# for members of types nested in templates.
🛠 Fixed the generated C# when a template is nested in another.
➕ Add ability for managed module wrapper to reference extra assemblies.
🐧 Re-added linux include path that was removed by mistake.
✅ Enable debug information generation for all tests.
🛠 Fix debug output not being generated when AST element had no comment.
🐧 Explicitly link to libstdc++ on linux.
🏗 All arguments passed to
build/Compile.share passed to premake. Allows more fine-grained build customization when using this shell script for compiling.
🐧 Tweak linux include dirs, previous change broke GCC7 include dirs on archlinux.
🌐 Consistent class/struct keywords fixed for cases where wrapper class would contain members from several different translation units.
🛠 Fix debug output breaking generated binding code.
🚚 Completely remove
🏗 CI: x64 builds on msvc and sudo requirement for travis
Always generate formatted code.
Delegatesname-space being not generated. In some cases
Delegatesname-space could be attached to a name-space which is not wrapped and as a result of that
Delegatesname-space was also not generated in wrapper code resulting in a wrapper build errors. Change adds extra logic which tries to find the correct library name-space if more than one name-space is present.
🛠 Consistently declare classes/structs. Fixes issue where compilation error is produced due to file name containing constants matching class marked as value type.
🛠 Fix linking to LLVM libs on linux, when system has llvm/clang installed.
🐧 Enable cxx11 abi for GCC 4.9+ on linux.
Worked around a bug in the Mono C# compiler when casting generics.
🛠 Fixed a crash when the body of a templated function contains references to non-functions.
🏗 Use correct LLVM build dir for includes from unpackaged LLVM builds
get_llvm_build_dir() returns "build" subdir if it exists, if not - subdir with package name.
🛠 Fix linked libs for linux
🏗 Use correct LLVM build dir for includes from unpackaged LLVM builds.
✂ Removed a duplicate explicit instantiation from the tests.
Cloning llvm from git replaced with downloading archives of exact commits from github. This is much faster.
Worked around duplication of types nested in templates and forwarded.
🛠 Fixed a crash when passing null as an std::string on Unix.
👮 Force-set platform type to managed targets.
🛠 Fix linux include paths in ParserGen and CLI generator.
🛠 Fix build errors in CppSharp.Parser.Bootstrap target.
🛠 Fixed a crash when there are parsing errors.
🛠 Fixed the collection of additional symbols to ignore warnings.
🛠 Fixed the generated C# when a constructor takes a specialisation.
🛠 Fixed a possible crash when instantiating template functions in the parser.
🛠 Fixed the generated C# for templates with fields other templates not used anywhere else.
🛠 Fixed the generated C# when using std::map.
🛠 Fixed the generated C# for specialisations with an ignored specialisation as an arg.
🛠 Fixed the generated C# for specialisations only used as type arguments.
✂ Removed extensions for internal template specialisations.
🛠 Fixed the parsing of an undeclared template specialisation with an extension method.
Validated bodies of instantiated template functions.
➕ Added a new field accessor synth kind.
👌 Improved IsSynthetized check to handle property setters.
👌 Improve get base method and property methods to work with generalized declarations.
➕ Added AssociatedDeclaration to Declaration copy constructor.
Included template specialisations only used as returned types.
Included the destructor of std::allocator to the C++ symbols.
Prevented C++ generation for invalid specialised functions.
🛠 Fixed the generated C# for fixed arrays of Booleans
⚡️ Updated to LLVM/Clang revisions 318543/318538 respectively.
🛠 Fixed the script for LLVM to handle paths with spaces.
Generalized method fields to declaration associations.
👌 Improved debugging display for declarations.
➕ Added optional visiting of property accessors.
CodeGenerator is now an IAstVisitor.
📜 Cleaned up the additional parser options after parsing headers.
🛠 Fixed the generated C++ for symbols to be compatible with Clang.
🛠 Fixed the generated C# when a type nested in a template is forwarded.
- 🛠 Fixed a crash when parsing unnamed declarations in name-spaces.
🖐 Handled any level of nesting when generating internals for specialisations in C#.
🛠 Fixed the generation of internals for template specialisations.
Ensured symbols for nested template specialisations.
🛠 Fixed the generated C++ for external template specialisations.
Completed just class template specialisations used in functions.
🛠 Fixed a regression of generating templates in C# with the option off.
🌐 Optimised the parser by skipping the system translation units.
Reused parameters between functions and their types (as Clang does).
➕ Added an option for specifying STD types to bind.
⬇️ Reduced time and memory during generation by skipping methods of most STD classes.
👌 Improved the check for a layout on a record.
🛠 Fixed a crash when trying to get a source location for an implicit declaration.
🛠 Fixed the generated C# for a fixed array of pointers.
✂ Removed unused STD enumerations from generation.
🛠 Fixed a crash when a comment contains regular text wrapped in <>.
Made only really used classes internal.
🛠 Fixed a typing error in the name of a function.
0️⃣ Ignored return parameters when fixing default arguments of overrides.
Ensured no overflown stack in the AST converter.
🛠 Fixed code generation for using template types.
👌 Improved debugging display for Type type.
🛠 Fixed incorrectly generated bindings for class with non-type template arguments.
🛠 Fixed the generated C# for templates derived from regular dynamic classes.
Ensured all non-system template specialisations are complete.
🛠 Fixed a problem when walking the managed AST because friend templated classes were seen as declared multiple times and resulted into a crash.
👌 Improved type notation in the manual.
Documented string marshaling behavior.
🛠 Fixed implicit class record walking in the parser.
➕ Added a new verbose flag to the CLI tool and improved verbose handling.
🛠 Fixed duplicate generation of forward declared class.
Small cleanup and minor optimizations in ResolveIncompleteDeclsPass.
👌 Improved the fix for handling non-type params in template specialisation types.
🛠 Fixed template parsing issue with processing of type locs.
🛠 Fixed a parser bug when dealing with DependentTemplateSpecializationTypeLoc.
🛠 Fixed an erroneous usage of LLVM cast with a regular C++ type. Only found with debug-mode LLVM build.
🛠 Fixed VS2017 system includes search error #957 (#958)
➕ Added experimental support for templates.
🛠 Fixed the generated C# when a virtual function takes a fixed array.
🛠 Fixed the generated C# for fixed arrays in types of parameters.
🛠 Fixed the generated C# for virtuals taking arrays of objects.
🏁 Lookup Mono SDK path on Windows registry.
🛠 Fixed the generated C# when a virtual function takes an array.
🛠 Fixed the generated C# with 4+ modules and repetitive delegates.
➕ Added C# marshalling of parameters of type array of const char* const.
➕ Added C# marshalling of parameters of type array of const char*.
🛠 Fixed null arrays in C# to be passed as such to C/C++.
➕ Added C# marshalling of parameters of type array of objects.
➕ Added C# marshalling of parameters of type array of primitives.
➕ Added marshalling of parameters of type array of pointers.
🛠 Fixed the generated C# for two anonymous types nested in another anonymous type.
✂ Removed unused internals from the generated C#.
➕ Added an example for the parser API-s.
➕ Add C++17 to the parser options
Compile.sh script now has improved error handling.
🐧 Linux toolchain can be supplied in the same spirit in path probing on Mac.
Enabled empty arrays of non-primitives only when not using MSVC.
Ignore zero-sized constant C array types.
0️⃣ The compilation platform is now nullable by default and validated by the host platforms.
➕ Added LLVM target initialization and supporting libraries for parsing inline assembly.
🛠 Fixed a crash when trying to use a VS version missing from the system.
🛠 Fixed the binding of multiple identical function pointers with a calling convention.
Got rid of anonymous names for delegates.
🛠 Fixed the calling conventions of delegates.
Ensures that if a delegate is used for a virtual as well as something else, it finally ends up as public.
🛠 Fixed the code generation when the return type of a method is a function pointer that has been used somewhere else as well.
➕ Added Access and Calling convention to the delegate definition.
Generated properties from setters returning Booleans.
➕ Added some aliases to options in the CLI tool.
[generator] Improved processing for C++ inline namespaces.
🛠 Fixed initial output messages in the CLI.
Generated properties from get()/void get() pairs.
⏪ Restored the option for generating one C# file per unit.
🛠 Fixed the sorting of modules to also work with manually added dependencies.
Do not generated unformatted code if debug mode is enabled.
➕ Added an option to the CLI for enabling debug mode for generated output.
👌 Improved the directory setup in the CLI in case the path is not a file path.
➕ Adds a new option to the CLI for automatic compilation of generated code.
➕ Adds a new dedicated "-exceptions" flag to enable C++ exceptions in the CLI.
➕ Added a new -A option to the CLI to pass compiler arguments to Clang parser.
🛠 Fixed the name of an option in the CLI.
✂ Removed the showing of help for the CLI if we have output an error previously.
👌 Improved error messages in the CLI.
👌 Improve platform detection in the CLI so the current platform is set by default.
🛠 Fixed a directory check in the CLI that was throwing exceptions in Mono.
🛠 Fixed the generated C# indexers for specialisations of pointers.
🛠 Fixed the generated C# for increment and decrement operators.
✂ Removed leftovers in the comments from unsupported custom xml tags.
🛠 Fixed the generation of symbols to check all base classes up the chain.
🖨 Printed the text from unsupported comment tags.
🛠 Fixed the generated C# for a case of a typedef of a function pointer.
Typedefs of function pointers can be written in two ways:
typedef void (*typedefedFuncPtr)();
int f(typedefedFuncPtr fptr);
typedef void (typedefedFuncPtr)();
int f(typedefedFuncPtr* fptr);
Up until now we only supported the former.
🛠 Fixed the C# generation for functions with typedefed function pointers as params
Set the name-space of a parameter to its function.
Included the comments plain text to the remarks block.
🛠 Fix the typo in LLVM.lua
Prevented projects from being generated using GenerateProjects.bat
🛠 Fixed the generated C# for setters with a reference to a primitive type.
📚 Ensured a single element for remarks in the generated XML documentation comments.
🛠 Fixed the renaming of methods in forwarded types from secondary bases in dependencies.
➕ Added to a method a list of its overridden methods.
Generated internals of external specialisations only if the template has template fields.
Equalised the access of overrides and their base methods.
🛠 Fixed the code generation for indexers returning a void pointer.
🛠 Fixed the generated C# when a protected constructor has a parameter with a protected type.
🛠 Fixed the generated C# when an external specialisation with a dependent field is used as a field.
Made Function a DeclarationContext to match the Clang AST.
Made the C/C++ language switches adjustable in managed code.
➕ Added an option to enable or disable RTTI.
🛠 Fixed the generation of inlines to handle types in classes in name-spaces.