make method

  1. @override
Future<MakeResult> make(
  1. Directory appDirectory, {
  2. required Directory outputDirectory,
  3. Map<String, dynamic>? makeArguments,
  4. void onProcessStdOut(
    1. List<int> data
    )?,
  5. void onProcessStdErr(
    1. List<int> data
    )?,
})

Implementation

@override
Future<MakeResult> make(
  Directory appDirectory, {
  required Directory outputDirectory,
  Map<String, dynamic>? makeArguments,
  void Function(List<int> data)? onProcessStdOut,
  void Function(List<int> data)? onProcessStdErr,
}) async {
  MakeExeConfig makeConfig = await loadMakeConfig(
    outputDirectory,
    makeArguments,
  ) as MakeExeConfig;

  Directory packagingDirectory = makeConfig.packagingDirectory;
  copyPathSync(appDirectory.path, packagingDirectory.path);

  InnoSetupScript script = InnoSetupScript.fromMakeConfig(makeConfig);
  InnoSetupCompiler compiler = InnoSetupCompiler();

  bool compiled = await compiler.compile(
    script,
    onProcessStdErr: onProcessStdErr,
    onProcessStdOut: onProcessStdOut,
  );

  if (!compiled) {
    throw MakeError();
  }

  packagingDirectory.deleteSync(recursive: true);

  return MakeResult(makeConfig);
}