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
    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