diff options
Diffstat (limited to 'nixpkgs/pkgs/development/compilers/flutter/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/compilers/flutter/default.nix | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/nixpkgs/pkgs/development/compilers/flutter/default.nix b/nixpkgs/pkgs/development/compilers/flutter/default.nix index 382e9143810a..29d5d415b8a0 100644 --- a/nixpkgs/pkgs/development/compilers/flutter/default.nix +++ b/nixpkgs/pkgs/development/compilers/flutter/default.nix @@ -4,7 +4,7 @@ let wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; }; getPatches = dir: let files = builtins.attrNames (builtins.readDir dir); - in map (f: dir + ("/" + f)) files; + in if (builtins.pathExists dir) then map (f: dir + ("/" + f)) files else [ ]; mkFlutter = { version , engineVersion @@ -13,10 +13,11 @@ let , dartHash , patches , pubspecLock + , artifactHashes }: let args = { - inherit version engineVersion patches pubspecLock; + inherit version engineVersion patches pubspecLock artifactHashes; dart = dart.override { version = dartVersion; @@ -53,28 +54,24 @@ let buildFlutterApplication = callPackage ../../../build-support/flutter { # Package a minimal version of Flutter that only uses Linux desktop release artifacts. flutter = (wrapFlutter (mkCustomFlutter args)).override { - supportedTargetPlatforms = [ "universal" "linux" ]; + supportedTargetFlutterPlatforms = [ "universal" "linux" ]; }; }; }; }); - flutter3Patches = getPatches ./patches/flutter3; + flutterVersions = lib.mapAttrs' + (version: _: + let + versionDir = ./versions + "/${version}"; + data = lib.importJSON (versionDir + "/data.json"); + in + lib.nameValuePair "v${version}" (wrapFlutter (mkFlutter ({ + patches = (getPatches ./patches) ++ (getPatches (versionDir + "/patches")); + } // data)))) + (builtins.readDir ./versions); in -{ - inherit wrapFlutter; - stable = mkFlutter { - version = "3.13.8"; - engineVersion = "767d8c75e898091b925519803830fc2721658d07"; - dartVersion = "3.1.4"; - dartHash = { - x86_64-linux = "sha256-42wrqzjRcFDWw2aEY6+/faX+QE9PA8FmRWP4M/NkgBE="; - aarch64-linux = "sha256-/tWWWwTOgXHbwzotc7ZDDZa8+cbX6NODGYrjLK9gPPg="; - x86_64-darwin = "sha256-BchKowKd6BscVuk/dXibcQzdFkW9//GDfll77mHEI4M="; - aarch64-darwin = "sha256-9yrx09vYrOTmdqkfJI7mfh7DI1/rg67tPlf82m5+iKI="; - }; - flutterHash = "sha256-00G030FvZZTsdf9ruFs9jdIHcC5h+xpp4NlmL64qVZA="; - patches = flutter3Patches; - pubspecLock = lib.importJSON ./lockfiles/stable/pubspec.lock.json; - }; +flutterVersions // { + stable = flutterVersions.${lib.last (lib.naturalSort (builtins.attrNames flutterVersions))}; + inherit wrapFlutter mkFlutter; } |