fingerprint method
Compute a fingerprint for this step based on its inputs.
Used for build caching to determine if a step needs to be re-executed.
Implementation
@override
Future<NativeStepFingerprint> fingerprint(NativeStepContext context) async {
final buffer = StringBuffer();
buffer.write(id);
buffer.write(
expandRecipeValue(buildDirectory, context.buildContext, context.source),
);
buffer.write(
expandRecipeValues(
targets,
context.buildContext,
context.source,
).join(','),
);
if (environment != null) {
final envEntries = expandRecipeStringMap(
environment!,
context.buildContext,
context.source,
).entries.toList()..sort((a, b) => a.key.compareTo(b.key));
buffer.write(envEntries.map((e) => '${e.key}=${e.value}').join('|'));
}
return NativeStepFingerprint(
id: id,
hash: fingerprintHash(buffer.toString()),
);
}