flutter: use engine dart when available

This commit is contained in:
Tristan Ross
2024-06-17 23:02:37 -07:00
parent f20386e27d
commit df1bef18e0
4 changed files with 35 additions and 11 deletions
@@ -0,0 +1,13 @@
{ engine, runCommand }:
runCommand "flutter-engine-${engine.version}-dart" {
version = engine.dartSdkVersion;
inherit engine;
inherit (engine) outName;
meta = engine.meta // {
description = "Dart SDK compiled from the Flutter Engine";
};
} ''
ln -s ${engine}/out/$outName/dart-sdk $out
''
@@ -44,7 +44,9 @@ stdenv.mkDerivation (
dartSdkVersion
isOptimized
runtimeMode
outName;
outName
dart
;
inherit altRuntimeMode;
dontUnpack = true;
@@ -60,7 +60,7 @@ let
outName = "host_${runtimeMode}${lib.optionalString (!isOptimized) "_unopt --unoptimized"}";
in
stdenv.mkDerivation {
stdenv.mkDerivation (finalAttrs: {
pname = "flutter-engine-${runtimeMode}${lib.optionalString (!isOptimized) "-unopt"}";
inherit
version
@@ -307,6 +307,10 @@ stdenv.mkDerivation {
runHook postInstall
'';
passthru = {
dart = callPackage ./dart.nix { engine = finalAttrs.finalPackage; };
};
meta = {
# Very broken on Darwin
broken = stdenv.isDarwin;
@@ -321,4 +325,4 @@ stdenv.mkDerivation {
"aarch64-darwin"
];
};
}
})
+13 -8
View File
@@ -19,19 +19,13 @@
, git
, which
, jq
, flutterTools ? callPackage ./flutter-tools.nix {
inherit dart version;
flutterSrc = src;
inherit patches;
inherit pubspecLock;
systemPlatform = stdenv.hostPlatform.system;
}
, flutterTools ? null
}@args:
let
engine = if args.useNixpkgsEngine or false then
callPackage ./engine/default.nix {
dartSdkVersion = dart.version;
dartSdkVersion = args.dart.version;
flutterVersion = version;
version = engineVersion;
hashes = engineHashes;
@@ -40,6 +34,17 @@ let
runtimeModes = engineRuntimeModes;
} else null;
dart = if args.useNixpkgsEngine or false then
engine.dart else args.dart;
flutterTools = args.flutterTools or (callPackage ./flutter-tools.nix {
inherit dart version;
flutterSrc = src;
inherit patches;
inherit pubspecLock;
systemPlatform = stdenv.hostPlatform.system;
});
unwrapped =
stdenv.mkDerivation {
name = "flutter-${version}-unwrapped";