Repository navigation
package:ffigen v22.1.0
·
5 commits
to main
since this release
- The YAML configuration format is deprecated and will be removed in a future
release. - Added
Input.appendCompilerOptionsto allow appending custom compiler
options to default options instead of replacing them. Removed
defaultCompilerOptsfrom the public API, since it is now redundant and was
always a hack. - Remove internal details from the public API of
ImportedType. - Default to C++17 compiler options when C++ bindings are enabled.
- Preserve documentation comments on same-name typedefs when generating the
underlying type binding. - Fix a bug where functions
using pointers to a C++ class were skipped unless C++ support was configured:
classdeclarations are now treated like structs, and with C++ support on,
the C++ class wrapper vs. plain struct decision is made by POD-ness rather
than by theclass/structkeyword. - Fix a bug where a C++ type named through a using-declaration (e.g.
std::uint16_t) was left unresolved, which dropped every function that
mentioned it from the bindings. Such types now resolve through their
canonical type. - Generate bindings for declarations inside C++
extern "C" { ... }
blocks, which were previously skipped entirely. - Generate bindings for C++ enums declared inside a namespace or a record.
Their Dart name is the scope path flattened with$, e.g.
outer::inner::Colorbecomesouter$inner$Color, andoriginalNameis
the qualified C++ name, so aVisitororimportTypecan filter or rename
by it. - Generate bindings for C++ structs, classes and unions declared inside a
namespace or a record, named the same way. Scoped records are not yet
surfaced when C++ class support is enabled. - Allow
package:cli_utilversions0.5.xand0.6.x. - Fix a crash during code generation when a typedef refers to a function
pointer with an unsupported parameter type (e.g. a C++ reference). Such
typedefs are now skipped like other unsupported typedefs, so struct members
and functions using them are dropped instead of crashing the writer.