generateJniBindings function

Future<void> generateJniBindings(
  1. Config config
)

Implementation

Future<void> generateJniBindings(Config config) async {
  setLoggingLevel(config.logLevel);

  await buildSummarizerIfNotExists();

  final Classes classes;

  try {
    classes = await getSummary(config);
  } on SummaryParseException catch (e) {
    if (e.stderr != null) {
      printError(e.stderr);
    }
    log.fatal(e.message);
  }

  classes.accept(Excluder(config));
  classes.accept(KotlinProcessor());
  await classes.accept(Linker(config));
  classes.accept(const Unnester());
  classes.accept(const Descriptor());
  classes.accept(Renamer(config));

  try {
    await classes.accept(DartGenerator(config));
    log.info('Completed');
  } on Exception catch (e, trace) {
    stderr.writeln(trace);
    log.fatal('Error while writing bindings: $e');
  }
}