Skip to content

The sdkRoot argument to start is not honoured everywhere #2767

@nielsenko

Description

@nielsenko

Notice how in lib/src/frontend_server_client.dart:

final _dartAotRuntimePath = p.join(sdkDir, 'bin', 'dartaotruntime');

final _feServerAppJitSnapshotPath =
    p.join(sdkDir, 'bin', 'snapshots', 'frontend_server.dart.snapshot');

final _feServerAotSnapshotPath =
    p.join(sdkDir, 'bin', 'snapshots', 'frontend_server_aot.dart.snapshot');

just use sdkDir which is set in lib/src/shared.dart

final sdkDir = p.dirname(p.dirname(Platform.resolvedExecutable));

Problem is that Platform.resolvedExecutable doesn't work with dart install.

However

  static Future<FrontendServerClient> start(
    ...
    String? sdkRoot, // Defaults to the current SDK root.
  })

if only it was used correctly, like:

String _dartAotRuntimePath(String? sdkRoot) =>
    p.join(sdkRoot ?? sdkDir, 'bin', 'dartaotruntime');

String _feServerAppJitSnapshotPath(String? sdkRoot) => p.join(
    sdkRoot ?? sdkDir, 'bin', 'snapshots', 'frontend_server.dart.snapshot');

String _feServerAotSnapshotPath(String? sdkRoot) => p.join(
    sdkRoot ?? sdkDir, 'bin', 'snapshots', 'frontend_server_aot.dart.snapshot');

then it would work with dart install as well, if we pass the sdkRoot argument.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions