CppSharp v0.10.2 Release Notes

Release Date: 2020-03-27 // over 1 year ago
    • Associate getter/setter methods with their associated property in GetterSetterToProperty pass

    • ➕ Added optional getter/setter pair creation for fields in FieldToProperty pass

    • ♻️ Refactor CLI handling of enums to be based on generic C generator

    • 0️⃣ Default to .h file extension in C code generator

    • ➕ Add helper methods to ignore and generate specific translation units

    • Guard a few more language-specific passes in the driver

    • 🛠 Fix generation of multiple interfaces in C# for some edge cases

    • 🛠 Fix templates to be abstract if any specialization is abstract

    • 🛠 Fix TranslationUnit.FileRelativePath for invalid units

    • 🖨 Re-use common C++ declaration type printing code in CLITypePrinter

    • 👍 Allow changing the default TypePrinterContextKind when creating a type printer

    • ✂ Remove needless pointer offsets from generated C#

    • 🛠 Fix a crash for secondary bases with secondary bases

    • 🛠 Fix bug related to processing of potential property methods

    • Ensure generated symbols can use placement new

    • 🛠 Fix Mono not being found on the PATH on recent macOS versions

    • 👻 Instantiate exception specifications before reading

    • ⚡️ Update LLVM to the latest version

    • 🛠 Fix a syntax error in CMake listing Clang modules

    • 🏗 Enable building lld as part of LLVM

    • ⏪ Restore modules needed for compiling with Clang

    • 👌 Support Visual Studio 2019 for building Clang

    • ⚡️ Update Travis to Ubuntu Xenial 18.04

    • ⚡️ Simplify and optimize the printing of pointers in C++

    • 🛠 Fix printing of function pointers in C++

    • Don't export symbols for explicit specializations

    • ✅ Avoid invalid template specializations in tests

    • ⚡️ Update the printing of comments to the new Clang

    • ↪ Work around MSVC 32 crashing reading of exported symbols in Mach-O

    • 👌 Improve Xcode toolchain lookup to be more robust

    • Implement logic for -fgnuc-version= argument required by LLVM

    • ⚡️ Update LLVM to the latest version

    • ♻️ Refactor Clang builtins directory logic and move it to the managed side

    • Escape C# strings correctly

    • 👌 Improve CS_INTERNAL so it now applies to all declarations

    • 🖨 Print the parser target triple in verbose mode

    • 🏗 Always re-create the Clang resource directory when building

    • Cleanup Clang resource directory lookup logic

    • ✂ Remove old workaround for testing issue that does not seem necessary anymore

    • Git ignore .vscode directory

    • 🏗 Workaround Premake issue when copying the resource include directories at build time

    • 🛠 Fix warning about #pragma once in source file

    • ⚡️ Update bootstrap tool to run against latest LLVM

    • ⚡️ Update bootstrap tool to find LLVM build directory

    • ➕ Add options to disable tests and examples from the build

    • 👌 Improve the ignoring of dependent name types

    • Implement UnresolvedUsingType and UnresolvedUsingTypename

    • 🛠 Fix the tests for exception types

    • Switch to Xcode 11 in Travis CI

    • 🖨 Extend printing and reading of exception types

    • 🛠 Fix the check to ignore dependent name types

    • Ignore unused destructors when generating symbols

    • 🛠 Fix the printing of "noexcept" in C++

    • ✅ Make destructors virtual in abstract classes for tests

    • Avoid generating abstract implementations for template classes

    • 🛠 Fix template type checking in CovariantTypeComparer

    • Git ignore nested temporary obj folders

    • 🍎 Workaround System.TypeLoad exception when running test-suite on macOS

    • 🛠 Fix enum with zeros for hex literals

    • 🛠 Fix the moving of free functions to classes to match by module too

    • 👍 Generate valid C# when an external module has an unsupported operator

    • 🛠 Fix a possible overflown stack when ignoring

    • 👮 Force compilation of all functions of specializations

    • Fill in missed values when cloning functions

    • ⚡️ Optimize the moving of functions to classes

    • ✂ Delete a custom pass added as standard

    • 🛠 Fix the C++ printing of function pointers in parameters

    • Eliminate generated symbols for ignored functions

    • 🛠 Fix printing of type defs in C++

    • ✂ Remove the internal C# functions for virtual destructors

    • Give unique names to exported inlined functions

    • Generate symbols for methods of specializations

    • ⚡️ Optimize all passes which visited useless items

    • 👉 Make the pass for properties more extendable

    • Simplify overrides of overrides of secondary bases

    • ⚡️ Optimize calls to base getters in properties

    • 🛠 Fix comparison of char and const char* in overloading

    • ⚡️ Optimize the pass for properties

    • Clarify limitations around exceptions and RTTI

    • Destroy returned by value std::strings

    • ⬆️ Upgrade ANSI marshalling to UTF-8 marshalling

    • Generate valid C# when a renamed override causes conflicts

    • Ensure protected nested types are accessible with multiple inheritance

    • 🛠 Fix the regressed indentation of printed comments

    • Generate projects for .NET 4.7 to use new features

    • Simplify the generated C# for marshalling strings