BuildConfig constructor
BuildConfig({
- String? packageName,
- required Map<
String, BuildTarget> buildTargets, - Map<
String, GlobalBuilderConfig> ? globalOptions, - Map<
String, BuilderDefinition> ? builderDefinitions, - Map<
String, PostProcessBuilderDefinition> ? postProcessBuilderDefinitions = const {}, - List<
String> additionalPublicAssets = const [],
Implementation
BuildConfig({
String? packageName,
required Map<String, BuildTarget> buildTargets,
Map<String, GlobalBuilderConfig>? globalOptions,
Map<String, BuilderDefinition>? builderDefinitions,
Map<String, PostProcessBuilderDefinition>? postProcessBuilderDefinitions =
const {},
this.additionalPublicAssets = const [],
}) : buildTargets =
identical(buildTargets, BuildConfig._placeholderBuildTarget)
? {
_defaultTarget(packageName ?? currentPackage): BuildTarget(
dependencies: currentPackageDefaultDependencies,
)
}
: buildTargets,
globalOptions = (globalOptions ?? const {}).map((key, config) =>
MapEntry(normalizeBuilderKeyUsage(key, currentPackage), config)),
builderDefinitions = _normalizeBuilderDefinitions(
builderDefinitions ?? const {}, packageName ?? currentPackage),
postProcessBuilderDefinitions = _normalizeBuilderDefinitions(
postProcessBuilderDefinitions ?? const {},
packageName ?? currentPackage),
packageName = packageName ?? currentPackage {
// Set up the expandos for all our build targets and definitions so they
// can know which package and builder key they refer to.
this.buildTargets.forEach((key, target) {
packageExpando[target] = this.packageName;
builderKeyExpando[target] = key;
});
this.builderDefinitions.forEach((key, definition) {
packageExpando[definition] = this.packageName;
builderKeyExpando[definition] = key;
});
this.postProcessBuilderDefinitions.forEach((key, definition) {
packageExpando[definition] = this.packageName;
builderKeyExpando[definition] = key;
});
}