in lib/cli_util.dart [23:58]
Directory getSdkDir([List<String>? cliArgs]) {
// Look for --dart-sdk on the command line.
if (cliArgs != null) {
var index = cliArgs.indexOf('--dart-sdk');
if (index != -1 && (index + 1 < cliArgs.length)) {
return Directory(cliArgs[index + 1]);
}
for (var arg in cliArgs) {
if (arg.startsWith('--dart-sdk=')) {
return Directory(arg.substring('--dart-sdk='.length));
}
}
}
// Look in env['DART_SDK']
var sdkLocation = Platform.environment['DART_SDK'];
if (sdkLocation != null) {
return Directory(sdkLocation);
}
// Look relative to the dart executable.
var platformExecutable = File(Platform.executable);
var sdkDirectory = platformExecutable.parent.parent;
if (isSdkDir(sdkDirectory)) return sdkDirectory;
// Handle the case where Platform.executable is a sibling of the SDK directory
// (this happens during internal testing).
sdkDirectory =
Directory(path.join(platformExecutable.parent.path, 'dart-sdk'));
if (isSdkDir(sdkDirectory)) return sdkDirectory;
// Use `Platform.resolvedExecutable`.
return Directory(getSdkPath());
}