build method

Future<BuildResult> build({
  1. required LinkModePreferenceImpl linkModePreference,
  2. required Target target,
  3. required Uri workingDirectory,
  4. required BuildModeImpl buildMode,
  5. CCompilerConfigImpl? cCompilerConfig,
  6. IOSSdkImpl? targetIOSSdk,
  7. int? targetIOSVersion,
  8. int? targetMacOSVersion,
  9. int? targetAndroidNdkApi,
  10. required bool includeParentEnvironment,
  11. PackageLayout? packageLayout,
  12. String? runPackageName,
  13. Iterable<String>? supportedAssetTypes,
  14. required bool linkingEnabled,
})

workingDirectory is expected to contain .dart_tool.

This method is invoked by launchers such as dartdev (for dart run) and flutter_tools (for flutter run and flutter build).

If provided, only assets of all transitive dependencies of runPackageName are built.

The native assets build runner does not support reentrancy for identical api.BuildConfig and api.LinkConfig! For more info see: https://github.com/dart-lang/native/issues/1319

Implementation

Future<BuildResult> build({
  required LinkModePreferenceImpl linkModePreference,
  required Target target,
  required Uri workingDirectory,
  required BuildModeImpl buildMode,
  CCompilerConfigImpl? cCompilerConfig,
  IOSSdkImpl? targetIOSSdk,
  int? targetIOSVersion,
  int? targetMacOSVersion,
  int? targetAndroidNdkApi,
  required bool includeParentEnvironment,
  PackageLayout? packageLayout,
  String? runPackageName,
  Iterable<String>? supportedAssetTypes,
  required bool linkingEnabled,
}) async =>
    _run(
      hook: Hook.build,
      linkModePreference: linkModePreference,
      target: target,
      workingDirectory: workingDirectory,
      buildMode: buildMode,
      cCompilerConfig: cCompilerConfig,
      targetIOSSdk: targetIOSSdk,
      targetIOSVersion: targetIOSVersion,
      targetMacOSVersion: targetMacOSVersion,
      targetAndroidNdkApi: targetAndroidNdkApi,
      includeParentEnvironment: includeParentEnvironment,
      packageLayout: packageLayout,
      runPackageName: runPackageName,
      supportedAssetTypes: supportedAssetTypes,
      linkingEnabled: linkingEnabled,
    );