···11-{ hostPlatform
11+{ systemPlatform
22, buildDartApplication
33, git
44, which
···3535 '';
36363737 dartEntryPoints."flutter_tools.snapshot" = "bin/flutter_tools.dart";
3838- dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${hostPlatform.system}" ];
3838+ dartCompileFlags = [ "--define=NIX_FLUTTER_HOST_PLATFORM=${systemPlatform}" ];
39394040 # The Dart wrapper launchers are useless for the Flutter tool - it is designed
4141 # to be launched from a snapshot by the SDK.
+25-9
pkgs/development/compilers/flutter/flutter.nix
···44, dart
55, src
66, pubspecLock
77+, artifactHashes ? null
78, lib
89, stdenv
910, callPackage
···1112, darwin
1213, git
1314, which
1414-}:
1515-1616-let
1717- tools = callPackage ./flutter-tools.nix {
1515+, jq
1616+, flutterTools ? callPackage ./flutter-tools.nix {
1817 inherit dart version;
1918 flutterSrc = src;
2019 inherit patches;
2120 inherit pubspecLock;
2222- };
2121+ systemPlatform = stdenv.hostPlatform.system;
2222+ }
2323+}:
23242525+let
2426 unwrapped =
2527 stdenv.mkDerivation {
2628 name = "flutter-${version}-unwrapped";
2729 inherit src patches version;
28302931 buildInputs = [ git ];
3030- nativeBuildInputs = [ makeWrapper ]
3232+ nativeBuildInputs = [ makeWrapper jq ]
3133 ++ lib.optionals stdenv.hostPlatform.isDarwin [ darwin.DarwinTools ];
32343335 preConfigure = ''
···5860 # Add a flutter_tools artifact stamp, and build a snapshot.
5961 # This is the Flutter CLI application.
6062 echo "$(git rev-parse HEAD)" > bin/cache/flutter_tools.stamp
6161- ln -s '${tools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot
6363+ ln -s '${flutterTools}/share/flutter_tools.snapshot' bin/cache/flutter_tools.snapshot
62646365 # Some of flutter_tools's dependencies contain static assets. The
6466 # application attempts to read its own package_config.json to find these
6567 # assets at runtime.
6668 mkdir -p packages/flutter_tools/.dart_tool
6767- ln -s '${tools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json
6969+ ln -s '${flutterTools.pubcache}/package_config.json' packages/flutter_tools/.dart_tool/package_config.json
68706971 echo -n "${version}" > version
7272+ cat <<EOF > bin/cache/flutter.version.json
7373+ {
7474+ "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)",
7575+ "flutterVersion": "${version}",
7676+ "frameworkVersion": "${version}",
7777+ "channel": "stable",
7878+ "repositoryUrl": "https://github.com/flutter/flutter.git",
7979+ "frameworkRevision": "nixpkgs000000000000000000000000000000000",
8080+ "frameworkCommitDate": "1970-01-01 00:00:00",
8181+ "engineRevision": "${engineVersion}",
8282+ "dartSdkVersion": "${dart.version}"
8383+ }
8484+ EOF
7085 '';
71867287 installPhase = ''
···105120 '';
106121107122 passthru = {
108108- inherit dart engineVersion tools;
123123+ inherit dart engineVersion artifactHashes;
124124+ tools = flutterTools;
109125 # The derivation containing the original Flutter SDK files.
110126 # When other derivations wrap this one, any unmodified files
111127 # found here should be included as-is, for tooling compatibility.