run method

  1. @override
Future<void> run({
  1. required BuildInput input,
  2. required BuildOutputBuilder output,
  3. required Logger? logger,
})

Runs this build.

Reads the input from input, streams output to output, and streams logs to logger.

Implementation

@override
Future<void> run({
  required BuildInput input,
  required BuildOutputBuilder output,
  required Logger? logger,
}) async {
  final code = input.config.code;
  if (!input.config.buildCodeAssets) {
    _logInfo(
      logger,
      'Skipping native_prebuilt: buildCodeAssets is disabled.',
    );
    return;
  }

  // Delegate to NativeProjectBuilder for the actual work.
  // This ensures both PrebuiltCodeAssetBuilder and NativeProjectBuilder
  // use the same resolution and build logic.
  final builder = NativeProjectBuilder.fromSourceFallback(
    assetName: assetName,
    libraryStem: libraryStem,
    manifest: manifest,
    linkMode: linkModeResolver(code),
    sourceFallback: sourceFallback,
    resolvers: resolvers,
    localDirectoryName: localDirectoryName,
  );

  await builder.run(input: input, output: output, logger: logger);
}