diff options
Diffstat (limited to 'pkgs/development/compilers/flutter/flutter-tools.nix')
-rw-r--r-- | pkgs/development/compilers/flutter/flutter-tools.nix | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/pkgs/development/compilers/flutter/flutter-tools.nix b/pkgs/development/compilers/flutter/flutter-tools.nix index cf35ed8cbc455..306765cd0a42a 100644 --- a/pkgs/development/compilers/flutter/flutter-tools.nix +++ b/pkgs/development/compilers/flutter/flutter-tools.nix @@ -2,6 +2,7 @@ , stdenv , systemPlatform , buildDartApplication +, runCommand , git , which , dart @@ -54,5 +55,22 @@ buildDartApplication.override { inherit dart; } rec { popd ''; + sdkSourceBuilders = { + # https://github.com/dart-lang/pub/blob/e1fbda73d1ac597474b82882ee0bf6ecea5df108/lib/src/sdk/dart.dart#L80 + "dart" = name: runCommand "dart-sdk-${name}" { passthru.packageRoot = "."; } '' + for path in '${dart}/pkg/${name}'; do + if [ -d "$path" ]; then + ln -s "$path" "$out" + break + fi + done + + if [ ! -e "$out" ]; then + echo 1>&2 'The Dart SDK does not contain the requested package: ${name}!' + exit 1 + fi + ''; + }; + inherit pubspecLock; } |