CppSharp v0.10.3 Release Notes

Release Date: 2020-04-09 // about 4 years ago
    • Ensure complete template specializations in AST

    • βž• Add an option and checking for generation of deprecated declarations

    • πŸ—„ Implement parsing and AST processing of C++ deprecated attributes

    • πŸ–¨ Make sure we use a native type printer for symbols code generation

    • Git ignore new include folders for cross generation

    • πŸ›  Fix marshaling for wchar_t in C++ generator mode

    • πŸ›  Fix includes setup for parser bindings generation in macOS host platform

    • πŸ›  Fix generation of field property setters in C++ generator

    • πŸ›  Fix FieldToProperty pass to ignore non-public properties in C++ generator

    • πŸ›  Fix declaration access for generated fields flattened from anonymous types

    • πŸ”„ Change standard type maps to be more specific about its supported generators

    • Generate forward ref header for enum defined inside a class in C++/CLI (#1322) - Ali Alamiri

    • 🚚 Move the GenerateInclude logic to GetTypeReference (#1319) - Ali Alamiri

    • πŸ›  By reference enum param fixes (#1321) - Ali Alamiri

    • βž• Add declaration context as object to function class block - Ali Alamiri

    • βž• Add blocks for ctor, dtor, and finalizer bodies. Add constructor that takes a bool from the caller to indicate if the callee should own the pointer passed to it or not - Ali Alamiri

    • βž• Add generic type map handling methods for later refactoring of generators

    • πŸ›  Fix type printing of typedef qualifiers in C++ type printer

    • πŸ›  Fix C++ parser ambiguity in generation of C++ method identifiers by wrapping them in parens

    • πŸ›  Fix generation of C++ constructor for abstract classes

    • πŸ›  Fix generation of native instance constructors in C++ generator

    • πŸ›  Fix marshaling of C++ references in C++ marshaler

    • πŸ”¨ Minor refactoring to allow better IDE inspection and debugging

    • 🌐 Rewrite GenerateEnumFromMacros to search through multiple translation units

    • πŸ›  Fix CppTypePrinter to check for typemaps for tag types and keep track of them

    • πŸ–¨ Implement a few overloads in CppTypePrinter that trigger the type maps checking code

    • πŸ›  Fix ignore type checking to take type maps into account

    • πŸ›  Fix ignored declaration checking to properties desugar field types

    • πŸ›  Fix GetterSetterToProperty pass heuristic to also detect β€œon” as a verb

    • πŸ–¨ CppTypePrinter now takes a BindingContext for further usage in type maps handling

    • Only generate β€œoverride” in header files for C++ generator

    • 🚚 Guard MoveFunctionToClassPass pass registration against CLI and C# generators

    • Ignore generated field method acessors when processing properties in GetterSetterToProperty

    • βž• Add cli namespace to header to ensure the array type does not conflict with other types called array - Ali Alamiri

    • πŸ›  Marshal non primitive fixed arrays (#1311) - Ali Alamiri

    • Ensure typedefs of std::vector are mapped - Ali Alamiri

    • πŸ“¦ Simplify the structure of the LLVM package

    • 0️⃣ Always keep default constructors in the AST

    • 🚚 Keep copy/move constructors and assignment in AST

    • 🚚 Move the body of a template function to its header

    • πŸ–¨ Implement proper array printing with C array name suffix notation

    • πŸ›  Fix CLITypeReferences so it generates regular C++ code in C++ generator mode

    • βž• Add CXXOperatorArityZero enum item for further usage in subsequent code

    • πŸŽ‰ Initial C++ generator backend