NativeProjectBuilder.fromSourceFallback constructor
NativeProjectBuilder.fromSourceFallback({
- required String assetName,
- required String libraryStem,
- required PrebuiltManifest manifest,
- required LinkMode linkMode,
- required SourceFallback? sourceFallback,
- List<
PrebuiltResolver> ? resolvers, - String localDirectoryName = '.prebuilt',
Creates a NativeProjectBuilder from a SourceFallback with callback.
This is used by PrebuiltCodeAssetBuilder to bridge the callback-based API into the unified build pipeline.
Implementation
factory NativeProjectBuilder.fromSourceFallback({
required String assetName,
required String libraryStem,
required PrebuiltManifest manifest,
required LinkMode linkMode,
required SourceFallback? sourceFallback,
List<PrebuiltResolver>? resolvers,
String localDirectoryName = '.prebuilt',
}) {
// Derive a project name from the release source
final projectName = switch (manifest.release) {
GitHubReleaseSource(:final owner, :final repository) =>
'$owner/$repository',
GitLabReleaseSource(:final projectPath) => projectPath,
};
return NativeProjectBuilder(
project: NativeProject(
name: projectName,
asset: NativeAssetSpec(
assetName: assetName,
libraryStem: libraryStem,
linkMode: linkMode,
),
prebuilts: manifest,
sources: sourceFallback?.sources ?? [],
build: const NativeBuildDefinition(recipes: []),
),
sourceFallback: sourceFallback,
resolvers: resolvers,
);
}