Skip to content

The sdkRoot argument to start is not honoured everywhere #2767

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions