BuildConfig.build constructor

BuildConfig.build({
  1. required Uri outputDirectory,
  2. required String packageName,
  3. required Uri packageRoot,
  4. required BuildMode buildMode,
  5. required Architecture targetArchitecture,
  6. required OS targetOS,
  7. IOSSdk? targetIOSSdk,
  8. int? targetAndroidNdkApi,
  9. CCompilerConfig? cCompiler,
  10. required LinkModePreference linkModePreference,
  11. Map<String, Map<String, Object>>? dependencyMetadata,
  12. Iterable<String>? supportedAssetTypes,
})

Constructs a config for a non-dry run by providing values for each field.

Build hooks will most likely use build instead of this constructor. However, for unit testing code which consumes a BuildConfig, this constructor facilitates easy construction.

For the documentation of the parameters, see the equally named fields.

Parameter dependencyMetadata must be a nested map {'packageName' : {'key' : 'value'}} where packageName and key correspond to the parameters in metadatum.

Implementation

factory BuildConfig.build({
  required Uri outputDirectory,
  required String packageName,
  required Uri packageRoot,
  required BuildMode buildMode,
  required Architecture targetArchitecture,
  required OS targetOS,
  IOSSdk? targetIOSSdk,
  int? targetAndroidNdkApi,
  CCompilerConfig? cCompiler,
  required LinkModePreference linkModePreference,
  Map<String, Map<String, Object>>? dependencyMetadata,
  Iterable<String>? supportedAssetTypes,
}) =>
    BuildConfigImpl(
      outputDirectory: outputDirectory,
      packageName: packageName,
      packageRoot: packageRoot,
      buildMode: buildMode as BuildModeImpl,
      targetArchitecture: targetArchitecture as ArchitectureImpl,
      targetOS: targetOS as OSImpl,
      targetIOSSdk: targetIOSSdk as IOSSdkImpl?,
      targetAndroidNdkApi: targetAndroidNdkApi,
      cCompiler: cCompiler as CCompilerConfigImpl?,
      linkModePreference: linkModePreference as LinkModePreferenceImpl,
      dependencyMetadata: dependencyMetadata != null
          ? {
              for (final entry in dependencyMetadata.entries)
                entry.key: Metadata(entry.value.cast())
            }
          : null,
      supportedAssetTypes: supportedAssetTypes,
    );