PrebuiltCodeAssetBuilder class final
A declarative Builder that resolves prebuilt native libraries from
GitHub Releases.
This is the primary public API for consuming packages. It implements the full resolution chain:
- User-defined override via
hooks.user_defines - Local
.prebuilt/directory - Shared cache (download from release)
- Source fallback (local/git/archive → prepare → build)
Example usage in hook/build.dart:
import 'package:hooks/hooks.dart';
import 'package:native_prebuilt/hooks.dart';
import 'package:my_package/src/hook/prebuilts.g.dart';
void main(List<String> args) async {
await build(args, (input, output) async {
await PrebuiltCodeAssetBuilder(
assetName: 'my_bindings_generated.dart',
libraryStem: 'my_native_lib',
manifest: myPrebuilts,
linkModeResolver: (code) => DynamicLoadingBundled(),
sourceFallback: SourceFallback(
sources: [LocalSource(paths: ['.'])],
builder: CallbackSourceBuilder(
callback: ({
required source,
required input,
required output,
required logger,
}) async {
// build from source.directory
},
),
),
).run(input: input, output: output, logger: null);
});
}
For new packages, consider using NativeProjectBuilder directly with a NativeProject definition for a more declarative approach.
Constructors
-
PrebuiltCodeAssetBuilder({required String assetName, required String libraryStem, required PrebuiltManifest manifest, required LinkMode linkModeResolver(CodeConfig code), SourceFallback? sourceFallback, String localDirectoryName = '.prebuilt', List<
PrebuiltResolver> ? resolvers}) -
const
Properties
- assetName → String
-
The asset name passed to
CodeAsset.final - hashCode → int
-
The hash code for this object.
no setterinherited
- libraryStem → String
-
The library stem without platform prefix or extension.
final
- linkModeResolver → LinkMode Function(CodeConfig code)
-
Returns the
LinkModeto use for the current build configuration.final - localDirectoryName → String
-
Directory name for local prebuilt overrides.
final
- manifest → PrebuiltManifest
-
The prebuilt manifest containing release and artifact metadata.
final
-
resolvers
→ List<
PrebuiltResolver> ? -
Custom resolver chain. If
null, uses the default chain: UserDefinePrebuiltResolver, LocalPrebuiltResolver, SharedCacheResolver.final - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sourceFallback → SourceFallback?
-
Optional source-based fallback when no prebuilt is available.
final
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
run(
{required BuildInput input, required BuildOutputBuilder output, required Logger? logger}) → Future< void> - Runs this build.
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited