diff options
author | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-22 16:42:22 +1000 |
---|---|---|
committer | hacker1024 <hacker1024@users.sourceforge.net> | 2023-04-23 00:12:45 +1000 |
commit | 9f05297dc8875baeeeb8160b60f120affc259f2c (patch) | |
tree | 7ea6e2706fb0cbf38d32e7f60214ae72ba548291 /pkgs/build-support/flutter | |
parent | 37e93f7c3b9c98eef13733f2a558194db2d1b0f6 (diff) |
flutter.buildFlutterApplication: Manually supply the dependency list
This removes the need for IFD.
Diffstat (limited to 'pkgs/build-support/flutter')
-rw-r--r-- | pkgs/build-support/flutter/default.nix | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/pkgs/build-support/flutter/default.nix b/pkgs/build-support/flutter/default.nix index 70428736c3248..622a19c32bd0f 100644 --- a/pkgs/build-support/flutter/default.nix +++ b/pkgs/build-support/flutter/default.nix @@ -5,6 +5,7 @@ , llvmPackages_13 , cacert , flutter +, jq }: # absolutely no mac support for now @@ -13,9 +14,11 @@ , flutterBuildFlags ? [ ] , runtimeDependencies ? [ ] , customPackageOverrides ? { } +, depsListFile ? null , vendorHash , pubspecLockFile ? null , nativeBuildInputs ? [ ] +, preUnpack ? "" , postFixup ? "" , ... }@args: @@ -41,8 +44,19 @@ let makeWrapper deps flutter + jq ] ++ nativeBuildInputs; + preUnpack = '' + if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.depsListFile}')"}; }; then + echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \ + '\nPlease copy the contents of ${finalAttrs.passthru.depsListFile} to a new file to pass to the depsListFile argument.' + exit 1 + fi + + ${preUnpack} + ''; + configurePhase = '' runHook preConfigure @@ -106,11 +120,14 @@ let ${postFixup} ''; + + passthru = { + inherit (deps) depsListFile; + }; }); packageOverrideRepository = (callPackage ../../development/compilers/flutter/package-overrides { }) // customPackageOverrides; - packages = callPackage ../dart/list-dart-deps { dart = flutter; } deps; - productPackages = builtins.filter (package: package.kind != "dev") packages; + productPackages = builtins.filter (package: package.kind != "dev") (if depsListFile == null then [ ] else (builtins.fromJSON (builtins.readFile depsListFile))); in builtins.foldl' (prev: package: |