diff options
Diffstat (limited to 'pkgs/development/compilers/flutter/flutter.nix')
-rw-r--r-- | pkgs/development/compilers/flutter/flutter.nix | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/pkgs/development/compilers/flutter/flutter.nix b/pkgs/development/compilers/flutter/flutter.nix index 3eabf71a8912e..757766d031524 100644 --- a/pkgs/development/compilers/flutter/flutter.nix +++ b/pkgs/development/compilers/flutter/flutter.nix @@ -1,6 +1,12 @@ -{ version +{ useNixpkgsEngine ? false +, version , engineVersion +, engineHashes ? {} +, engineUrl ? "https://github.com/flutter/engine.git@${engineVersion}" +, enginePatches ? [] +, engineRuntimeModes ? [ "release" "debug" ] , patches +, channel , dart , src , pubspecLock @@ -20,9 +26,20 @@ inherit pubspecLock; systemPlatform = stdenv.hostPlatform.system; } -}: +}@args: let + engine = if args.useNixpkgsEngine or false then + callPackage ./engine/default.nix { + dartSdkVersion = dart.version; + flutterVersion = version; + version = engineVersion; + hashes = engineHashes; + url = engineUrl; + patches = enginePatches; + runtimeModes = engineRuntimeModes; + } else null; + unwrapped = stdenv.mkDerivation { name = "flutter-${version}-unwrapped"; @@ -74,7 +91,7 @@ let "devToolsVersion": "$(cat "${dart}/bin/resources/devtools/version.json" | jq -r .version)", "flutterVersion": "${version}", "frameworkVersion": "${version}", - "channel": "stable", + "channel": "${channel}", "repositoryUrl": "https://github.com/flutter/flutter.git", "frameworkRevision": "nixpkgs000000000000000000000000000000000", "frameworkCommitDate": "1970-01-01 00:00:00", @@ -124,12 +141,15 @@ let ''; passthru = { - inherit dart engineVersion artifactHashes; + # TODO: rely on engine.version instead of engineVersion + inherit dart engineVersion artifactHashes channel; tools = flutterTools; # The derivation containing the original Flutter SDK files. # When other derivations wrap this one, any unmodified files # found here should be included as-is, for tooling compatibility. sdk = unwrapped; + } // lib.optionalAttrs (engine != null && engine.meta.available) { + inherit engine; }; meta = with lib; { |