rustLibCandidates function

List<String> rustLibCandidates({
  1. String? checkoutRelativeRustDir,
})

Locations a built Rust cdylib may live, fastest/most-likely first.

Implementation

List<String> rustLibCandidates({String? checkoutRelativeRustDir}) {
  final name = precompiledRustLibFileName();
  final rustDir = checkoutRelativeRustDir ?? checkoutRustDir;
  final cargoDebug = '$rustDir/target/debug/$name';
  final cargoRelease = '$rustDir/target/release/$name';

  if (Platform.isLinux) {
    return [
      cargoRelease,
      cargoDebug,
      'build/linux/x64/release/bundle/lib/$name',
      'build/linux/x64/debug/bundle/lib/$name',
    ];
  }
  if (Platform.isMacOS) {
    return [
      cargoRelease,
      cargoDebug,
      'build/macos/Build/Products/Release/$name',
      'build/macos/Build/Products/Debug/$name',
    ];
  }
  if (Platform.isWindows) {
    return [
      cargoRelease,
      cargoDebug,
      'build/windows/x64/runner/Release/$name',
      'build/windows/x64/runner/Debug/$name',
    ];
  }
  return [cargoRelease, cargoDebug];
}