bin
- Contains ffigen.dart script which end user will execute.tool
- Contains script to generate LibClang bindings using Code_Generator submodule (dev use only).example
- Example projects which demonstrate generation of bindings for given C header files.lib/src/code_generator
- Generates binding files.lib/src/config_provider
- Holds configurations to be passed to other modules.lib/src/header_parser
- Parses header files, utilises clang_bindings.declarations
in it to the bindings.header filters
to select which declaration from a particular header file should be added to the generated bindings. The can provide a list of header ‘names’ to include/exclude. We compare the header file name (not the exact path) to decide. The default behaviour is to include everything that's included when parsing a header.We are using libclang to parse header files. This project is roughly divided in 3 major modules -
Converts a library(all bindings) to an actual string representation.
This takes care of validating user config files, printing config warnings and errors, converting config.yaml to a format the header_parser can use.
Uses libclang to convert the header to a Library which is then used by code_generator.