buildApiSummarizer function

Future<void> buildApiSummarizer()

Implementation

Future<void> buildApiSummarizer() async {
  final pkg = await findPackageRoot('jnigen');
  if (pkg == null) {
    log.fatal('package jnigen not found!');
  }
  final gradleFile = pkg.resolve('java/build.gradle.kts');
  final gradleWrapper = await GradleTools.getGradleWExecutable();
  await Directory(toolPath).create(recursive: true);
  final gradleArgs = [
    '-b',
    gradleFile.toFilePath(),
    'buildFatJar', // from ktor plugin
    '-x', 'test', // ignore failing tests
    '-q' // quiet
  ];

  try {
    final gradleProc = await Process.run(
        gradleWrapper!.toFilePath(), gradleArgs,
        workingDirectory: toolPath, runInShell: true);
    final exitCode = gradleProc.exitCode;
    final sourceJar = File(pkg
        .resolve('java/build/libs/ApiSummarizer.jar')
        .toFilePath(windows: Platform.isWindows));

    if (exitCode == 0) {
      sourceJar.copySync(
          File(targetJarFile).uri.toFilePath(windows: Platform.isWindows));
    } else {
      printError(gradleProc.stdout);
      printError(gradleProc.stderr);
      printError('gradle exited with $exitCode');
    }
  } finally {}
}